-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A raw binding for the OpenGL graphics system
--   
--   OpenGLRaw is a raw Haskell binding for the OpenGL 4.5 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 <a>http://www.opengl.org/</a>
--   and <a>http://www.opengl.org/registry/</a>.
@package OpenGLRaw
@version 3.2.7.0


-- | All types from the whole OpenGL registry.
module Graphics.GL.Types

-- | 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

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | 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 <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
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 <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
makeGLDEBUGPROCAMD :: GLDEBUGPROCAMDFunc -> IO (FunPtr GLDEBUGPROCAMDFunc)
type GLDEBUGPROCARB = GLDEBUGPROC
type GLDEBUGPROCARBFunc = GLDEBUGPROCFunc
makeGLDEBUGPROCARB :: GLDEBUGPROCARBFunc -> IO (FunPtr GLDEBUGPROCARBFunc)
type GLDEBUGPROCKHR = GLDEBUGPROC
type GLDEBUGPROCKHRFunc = GLDEBUGPROCFunc
makeGLDEBUGPROCKHR :: GLDEBUGPROCKHRFunc -> IO (FunPtr GLDEBUGPROCKHRFunc)
type GLclampx = Fixed
type GLhandleARB = Word32
type GLvdpauSurfaceNV = GLintptr
type GLeglImageOES = Ptr ()
type GLeglClientBufferEXT = Ptr ()
type GLVULKANPROCNVFunc = IO ()
type GLVULKANPROCNV = FunPtr GLVULKANPROCNVFunc

-- | <i>Deprecated: Use <a>makeGLDEBUGPROC</a> instead.</i>
mkGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)

-- | <i>Deprecated: Use <a>makeGLDEBUGPROCAMD</a> instead.</i>
mkGLDEBUGPROCAMD :: GLDEBUGPROCAMDFunc -> IO (FunPtr GLDEBUGPROCAMDFunc)

-- | <i>Deprecated: Use <tt>makekGLDEBUGPROCARB</tt> instead.</i>
mkGLDEBUGPROCARB :: GLDEBUGPROCARBFunc -> IO (FunPtr GLDEBUGPROCARBFunc)

-- | <i>Deprecated: Use <a>makeGLDEBUGPROCKHR</a> instead.</i>
mkGLDEBUGPROCKHR :: GLDEBUGPROCKHRFunc -> IO (FunPtr GLDEBUGPROCKHRFunc)


-- | All enumeration tokens from the <a>OpenGL registry</a>.
module Graphics.GL.Tokens


-- | All enumeration groups from the <a>OpenGL registry</a>.
module Graphics.GL.Groups


-- | This module offers a portable way to retrieve OpenGL functions and
--   extension entries, providing a portability layer upon
--   platform-specific mechanisms like <tt>glXGetProcAddress</tt>,
--   <tt>wglGetProcAddress</tt> or <tt>NSAddressOfSymbol</tt>.
--   
--   Note that <i>finding</i> an OpenGL entry point doesn't mean that it's
--   actually <i>usable:</i> 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

-- | Retrieve an OpenGL function by name. Returns <a>nullFunPtr</a> when no
--   function with the given name was found.
getProcAddress :: MonadIO m => String -> m (FunPtr a)

-- | Retrieve an OpenGL function by name, trying a list of name suffixes in
--   the given order. Returns <a>nullFunPtr</a> when no function with the
--   given name plus any of the suffixes was found.
getProcAddressWithSuffixes :: MonadIO m => String -> [String] -> m (FunPtr a)

-- | Retrieve an OpenGL function by name, additionally trying a list of all
--   known vendor suffixes. Returns <a>nullFunPtr</a> when no function with
--   the given name plus any of the suffixes was found.
getExtension :: MonadIO m => String -> m (FunPtr a)

-- | Retrieve an OpenGL function by name. Throws an <a>userError</a> when
--   no function with the given name was found.
getProcAddressChecked :: MonadIO m => String -> m (FunPtr a)

-- | Retrieve an OpenGL function by name, trying a list of name suffixes in
--   the given order. Throws an <a>userError</a> when no function with the
--   given name plus any of the suffixes was found.
getProcAddressWithSuffixesChecked :: MonadIO m => String -> [String] -> m (FunPtr a)

-- | Retrieve an OpenGL function by name, additionally trying a list of all
--   known vendor suffixes. Throws an <a>userError</a> when no function
--   with the given name plus any of the suffixes was found.
getExtensionChecked :: MonadIO m => String -> m (FunPtr a)

-- | Retrieve the OpenGL version, split into major and minor version
--   numbers.
getVersion :: MonadIO m => m (Int, Int)

-- | 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 <a>getVersion</a> in those cases instead.
version :: (Int, Int)

-- | Retrieve the set of all available OpenGL extensions.
getExtensions :: MonadIO m => m (Set String)

-- | The set of all available OpenGL extensions. Note that in the presence
--   of multiple contexts with different capabilities, this might be wrong.
--   Use <a>getExtensions</a> in those cases instead.
extensions :: Set String


-- | All raw functions from the <a>OpenGL registry</a>.
module Graphics.GL.Functions

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()
glAccumxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glAcquireKeyedMutexWin32EXT :: MonadIO m => GLuint -> GLuint64 -> GLuint -> m GLboolean
glActiveProgramEXT :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()
glActiveShaderProgramEXT :: MonadIO m => GLuint -> GLuint -> m ()
glActiveStencilFaceEXT :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glActiveTexture</a>.
glActiveTextureARB :: MonadIO m => GLenum -> m ()
glActiveVaryingNV :: MonadIO m => GLuint -> Ptr GLchar -> m ()
glAlphaFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glAlphaFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glAlphaFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()
glAlphaFuncQCOM :: MonadIO m => GLenum -> GLclampf -> m ()
glAlphaFuncx :: MonadIO m => GLenum -> GLfixed -> m ()
glAlphaFuncxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glAlphaToCoverageDitherControlNV :: MonadIO m => GLenum -> m ()
glApplyFramebufferAttachmentCMAAINTEL :: MonadIO m => m ()
glApplyTextureEXT :: MonadIO m => GLenum -> m ()
glAreProgramsResidentNV :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
glAreTexturesResidentEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | This command is an alias for <a>glArrayElement</a>.
glArrayElementEXT :: MonadIO m => GLint -> m ()
glArrayObjectATI :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
glAsyncMarkerSGIX :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glAttachShader</a>.
glAttachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | This command is an alias for <a>glBeginConditionalRender</a>.
glBeginConditionalRenderNV :: MonadIO m => GLuint -> GLenum -> m ()
glBeginConditionalRenderNVX :: MonadIO m => GLuint -> m ()
glBeginFragmentShaderATI :: MonadIO m => m ()
glBeginOcclusionQueryNV :: MonadIO m => GLuint -> m ()
glBeginPerfMonitorAMD :: MonadIO m => GLuint -> m ()
glBeginPerfQueryINTEL :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glBeginQuery</a>.
glBeginQueryARB :: MonadIO m => GLenum -> GLuint -> m ()
glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glBeginTransformFeedback</a>.
glBeginTransformFeedbackEXT :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glBeginTransformFeedback</a>.
glBeginTransformFeedbackNV :: MonadIO m => GLenum -> m ()
glBeginVertexShaderEXT :: MonadIO m => m ()
glBeginVideoCaptureNV :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glBindAttribLocation</a>.
glBindAttribLocationARB :: MonadIO m => GLhandleARB -> GLuint -> Ptr GLcharARB -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glBindBuffer</a>.
glBindBufferARB :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glBindBufferBase</a>.
glBindBufferBaseEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glBindBufferBase</a>.
glBindBufferBaseNV :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
glBindBufferOffsetEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()

-- | This command is an alias for <a>glBindBufferOffsetEXT</a>.
glBindBufferOffsetNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | This command is an alias for <a>glBindBufferRange</a>.
glBindBufferRangeEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | This command is an alias for <a>glBindBufferRange</a>.
glBindBufferRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glBindFragDataLocation</a>.
glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glBindFragDataLocationIndexed</a>.
glBindFragDataLocationIndexedEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
glBindFragmentShaderATI :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()
glBindFramebufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
glBindFramebufferOES :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
glBindImageTextureEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
glBindLightParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
glBindMaterialParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
glBindMultiTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glBindParameterEXT :: MonadIO m => GLenum -> m GLuint
glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glBindProgramARB</a>.
glBindProgramNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()
glBindProgramPipelineEXT :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()
glBindRenderbufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
glBindRenderbufferOES :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
glBindTexGenParameterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glBindTexture</a>.
glBindTextureEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()
glBindTextureUnitParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
glBindTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()
glBindVertexArrayAPPLE :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glBindVertexArray</a>.
glBindVertexArrayOES :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
glBindVertexShaderEXT :: MonadIO m => GLuint -> m ()
glBindVideoCaptureStreamBufferNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()
glBindVideoCaptureStreamTextureNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | The vector equivalent of this command is <a>glBinormal3bvEXT</a>.
glBinormal3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glBinormal3bvEXT :: MonadIO m => Ptr GLbyte -> m ()

-- | The vector equivalent of this command is <a>glBinormal3dvEXT</a>.
glBinormal3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glBinormal3dvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glBinormal3fvEXT</a>.
glBinormal3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glBinormal3fvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glBinormal3ivEXT</a>.
glBinormal3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
glBinormal3ivEXT :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glBinormal3svEXT</a>.
glBinormal3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glBinormal3svEXT :: MonadIO m => Ptr GLshort -> m ()
glBinormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
glBitmapxOES :: MonadIO m => GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> m ()
glBlendBarrier :: MonadIO m => m ()

-- | This command is an alias for <a>glBlendBarrier</a>.
glBlendBarrierKHR :: MonadIO m => m ()

-- | This command is an alias for <a>glBlendBarrier</a>.
glBlendBarrierNV :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glBlendColor</a>.
glBlendColorEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glBlendColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glBlendEquation</a>.
glBlendEquationEXT :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationIndexedAMD :: MonadIO m => GLuint -> GLenum -> m ()
glBlendEquationOES :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationSeparate</a>.
glBlendEquationSeparateEXT :: MonadIO m => GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
glBlendEquationSeparateOES :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateiOES :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationiARB :: MonadIO m => GLuint -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationiEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationiOES :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFunci</a>.
glBlendFuncIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFuncSeparate</a>.
glBlendFuncSeparateEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFuncSeparate</a>.
glBlendFuncSeparateINGR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glBlendFuncSeparateOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateiOES :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFunci</a>.
glBlendFunciARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFunci</a>.
glBlendFunciEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFunci</a>.
glBlendFunciOES :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
glBlendParameteriNV :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
glBlitFramebufferANGLE :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | This command is an alias for <a>glBlitFramebuffer</a>.
glBlitFramebufferEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | This command is an alias for <a>glBlitFramebuffer</a>.
glBlitFramebufferNV :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
glBufferAddressRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | This command is an alias for <a>glBufferData</a>.
glBufferDataARB :: MonadIO m => GLenum -> GLsizeiptrARB -> Ptr a -> GLenum -> m ()
glBufferPageCommitmentARB :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
glBufferParameteriAPPLE :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | This command is an alias for <a>glBufferStorage</a>.
glBufferStorageEXT :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()
glBufferStorageExternalEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> m ()
glBufferStorageMemEXT :: MonadIO m => GLenum -> GLsizeiptr -> GLuint -> GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | This command is an alias for <a>glBufferSubData</a>.
glBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr a -> m ()
glCallCommandListNV :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | This command is an alias for <a>glCheckFramebufferStatus</a>.
glCheckFramebufferStatusEXT :: MonadIO m => GLenum -> m GLenum
glCheckFramebufferStatusOES :: MonadIO m => GLenum -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum
glCheckNamedFramebufferStatusEXT :: MonadIO m => GLuint -> GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glClampColor</a>.
glClampColorARB :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glClearAccumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glClearColorIiEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glClearColorIuiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
glClearColorx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glClearColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()
glClearDepthdNV :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | This command is an alias for <a>glClearDepthf</a>.
glClearDepthfOES :: MonadIO m => GLclampf -> m ()
glClearDepthx :: MonadIO m => GLfixed -> m ()
glClearDepthxOES :: MonadIO m => GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()
glClearNamedBufferDataEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()
glClearNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
glClearPixelLocalStorageuiEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glClearTexImage</a>.
glClearTexImageEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glClearTexSubImage</a>.
glClearTexSubImageEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glClientActiveTexture</a>.
glClientActiveTextureARB :: MonadIO m => GLenum -> m ()
glClientActiveVertexStreamATI :: MonadIO m => GLenum -> m ()
glClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | This command is an alias for <a>glClientWaitSync</a>.
glClientWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glClipControl :: MonadIO m => GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glClipControlEXT</a>.
glClipControlEXT :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glClipPlanefIMG :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glClipPlanexIMG :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glColor3hvNV</a>.
glColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()
glColor3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glColor3xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glColor4hvNV</a>.
glColor4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glColor4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
glColor4ubVertex2fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> m ()
glColor4ubVertex2fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()
glColor4ubVertex3fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor4ubVertex3fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()
glColor4x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glColor4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glColor4xvOES :: MonadIO m => Ptr GLfixed -> m ()
glColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
glColorFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glColorFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glColorFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | This command is an alias for <a>glColorMaski</a>.
glColorMaskIndexedEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | This command is an alias for <a>glColorMaski</a>.
glColorMaskiEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | This command is an alias for <a>glColorMaski</a>.
glColorMaskiOES :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()
glColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glColorPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glColorSubTable</a>.
glColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorTable :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glColorTable</a>.
glColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glColorTableParameterfv</a>.
glColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glColorTableParameteriv</a>.
glColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <tt>glColorTable</tt>.
glColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glCombinerOutputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()
glCombinerParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()
glCombinerParameterfvNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glCombinerParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
glCombinerParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
glCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glCommandListSegmentsNV :: MonadIO m => GLuint -> GLuint -> m ()
glCompileCommandListNV :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glCompileShader</a>.
glCompileShaderARB :: MonadIO m => GLhandleARB -> m ()
glCompileShaderIncludeARB :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
glCompressedMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexImage1D</a>.
glCompressedTexImage1DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexImage2D</a>.
glCompressedTexImage2DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexImage3D</a>.
glCompressedTexImage3DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexSubImage1D</a>.
glCompressedTexSubImage1DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexSubImage2D</a>.
glCompressedTexSubImage2DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexSubImage3D</a>.
glCompressedTexSubImage3DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glConservativeRasterParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()
glConservativeRasterParameteriNV :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glConvolutionFilter1D</a>.
glConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glConvolutionFilter2D</a>.
glConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | This command is an alias for <a>glConvolutionParameterf</a>.
glConvolutionParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glConvolutionParameterfv</a>.
glConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | This command is an alias for <a>glConvolutionParameteri</a>.
glConvolutionParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glConvolutionParameteriv</a>.
glConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glConvolutionParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | This command is an alias for <a>glCopyBufferSubData</a>.
glCopyBufferSubDataNV :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyColorSubTable</a>.
glCopyColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyColorTable :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyColorTable</a>.
glCopyColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyConvolutionFilter1D</a>.
glCopyConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyConvolutionFilter2D</a>.
glCopyConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyImageSubData</a>.
glCopyImageSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
glCopyImageSubDataNV :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyImageSubData</a>.
glCopyImageSubDataOES :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
glCopyMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
glCopyMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
glCopyMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
glCopyMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
glCopyPathNV :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | This command is an alias for <a>glCopyTexImage1D</a>.
glCopyTexImage1DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | This command is an alias for <a>glCopyTexImage2D</a>.
glCopyTexImage2DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyTexSubImage1D</a>.
glCopyTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyTexSubImage2D</a>.
glCopyTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyTexSubImage3D</a>.
glCopyTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
glCopyTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
glCopyTextureLevelsAPPLE :: MonadIO m => GLuint -> GLuint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
glCopyTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> m ()
glCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glCoverStrokePathNV :: MonadIO m => GLuint -> GLenum -> m ()
glCoverageMaskNV :: MonadIO m => GLboolean -> m ()
glCoverageModulationNV :: MonadIO m => GLenum -> m ()
glCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
glCoverageOperationNV :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateMemoryObjectsEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreatePerfQueryINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | This command is an alias for <a>glCreateProgram</a>.
glCreateProgramObjectARB :: MonadIO m => m GLhandleARB

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | This command is an alias for <a>glCreateShader</a>.
glCreateShaderObjectARB :: MonadIO m => GLenum -> m GLhandleARB
glCreateShaderProgramEXT :: MonadIO m => GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
glCreateShaderProgramvEXT :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
glCreateStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateSyncFromCLeventARB :: MonadIO m => Ptr a -> Ptr b -> GLbitfield -> m GLsync

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()
glCullParameterdvEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glCullParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glCurrentPaletteMatrixARB :: MonadIO m => GLint -> m ()
glCurrentPaletteMatrixOES :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()
glDebugMessageCallbackAMD :: MonadIO m => GLDEBUGPROCAMD -> Ptr a -> m ()

-- | This command is an alias for <a>glDebugMessageCallback</a>.
glDebugMessageCallbackARB :: MonadIO m => GLDEBUGPROCARB -> Ptr a -> m ()

-- | This command is an alias for <a>glDebugMessageCallback</a>.
glDebugMessageCallbackKHR :: MonadIO m => GLDEBUGPROCKHR -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | This command is an alias for <a>glDebugMessageControl</a>.
glDebugMessageControlARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | This command is an alias for <a>glDebugMessageControl</a>.
glDebugMessageControlKHR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
glDebugMessageEnableAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
glDebugMessageInsertAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glDebugMessageInsert</a>.
glDebugMessageInsertARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glDebugMessageInsert</a>.
glDebugMessageInsertKHR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
glDeformSGIX :: MonadIO m => GLbitfield -> m ()
glDeformationMap3dSGIX :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glDeformationMap3fSGIX :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glDeleteAsyncMarkersSGIX :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDeleteBuffers</a>.
glDeleteBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteFragmentShaderATI :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDeleteFramebuffers</a>.
glDeleteFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()
glDeleteMemoryObjectsEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m ()
glDeleteNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glDeleteObjectARB :: MonadIO m => GLhandleARB -> m ()
glDeleteOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeletePathsNV :: MonadIO m => GLuint -> GLsizei -> m ()
glDeletePerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeletePerfQueryINTEL :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDeleteProgramsARB</a>.
glDeleteProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDeleteQueries</a>.
glDeleteQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteQueryResourceTagNV :: MonadIO m => GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDeleteRenderbuffers</a>.
glDeleteRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteSemaphoresEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()
glDeleteStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | This command is an alias for <a>glDeleteSync</a>.
glDeleteSyncAPPLE :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDeleteTransformFeedbacks</a>.
glDeleteTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDeleteVertexArrays</a>.
glDeleteVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDeleteVertexArrays</a>.
glDeleteVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteVertexShaderEXT :: MonadIO m => GLuint -> m ()
glDepthBoundsEXT :: MonadIO m => GLclampd -> GLclampd -> m ()
glDepthBoundsdNV :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()
glDepthRangeArrayfvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glDepthRangeArrayfvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
glDepthRangeIndexedfNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
glDepthRangeIndexedfOES :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
glDepthRangedNV :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glDepthRangef</a>.
glDepthRangefOES :: MonadIO m => GLclampf -> GLclampf -> m ()
glDepthRangex :: MonadIO m => GLfixed -> GLfixed -> m ()
glDepthRangexOES :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | This command is an alias for <a>glDetachShader</a>.
glDetachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()
glDetailTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()
glDisableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glDisableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
glDisableDriverControlQCOM :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glDisablei</a>.
glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glDisableVariantClientStateEXT :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
glDisableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
glDisableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
glDisableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glDisableVertexAttribArray</a>.
glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glDisablei</a>.
glDisableiEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glDisablei</a>.
glDisableiNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glDisablei</a>.
glDisableiOES :: MonadIO m => GLenum -> GLuint -> m ()
glDiscardFramebufferEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glDispatchComputeGroupSizeARB :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawArrays</a>.
glDrawArraysEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedANGLE :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedARB :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | This command is an alias for <a>glDrawArraysInstancedBaseInstance</a>.
glDrawArraysInstancedBaseInstanceEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedNV :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | This command is an alias for <a>glDrawBuffers</a>.
glDrawBuffersARB :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | This command is an alias for <a>glDrawBuffers</a>.
glDrawBuffersATI :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | This command is an alias for <a>glDrawBuffers</a>.
glDrawBuffersEXT :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
glDrawBuffersIndexedEXT :: MonadIO m => GLint -> Ptr GLenum -> Ptr GLint -> m ()
glDrawBuffersNV :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
glDrawCommandsAddressNV :: MonadIO m => GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
glDrawCommandsNV :: MonadIO m => GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
glDrawCommandsStatesAddressNV :: MonadIO m => Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
glDrawCommandsStatesNV :: MonadIO m => GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
glDrawElementArrayAPPLE :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
glDrawElementArrayATI :: MonadIO m => GLenum -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | This command is an alias for <a>glDrawElementsBaseVertex</a>.
glDrawElementsBaseVertexEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | This command is an alias for <a>glDrawElementsBaseVertex</a>.
glDrawElementsBaseVertexOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedARB :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | This command is an alias for
--   <a>glDrawElementsInstancedBaseInstance</a>.
glDrawElementsInstancedBaseInstanceEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | This command is an alias for
--   <a>glDrawElementsInstancedBaseVertexBaseInstance</a>.
glDrawElementsInstancedBaseVertexBaseInstanceEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | This command is an alias for <a>glDrawElementsInstancedBaseVertex</a>.
glDrawElementsInstancedBaseVertexEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | This command is an alias for <a>glDrawElementsInstancedBaseVertex</a>.
glDrawElementsInstancedBaseVertexOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()
glDrawMeshArraysSUN :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
glDrawRangeElementArrayATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | This command is an alias for <a>glDrawRangeElementsBaseVertex</a>.
glDrawRangeElementsBaseVertexEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | This command is an alias for <a>glDrawRangeElementsBaseVertex</a>.
glDrawRangeElementsBaseVertexOES :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | This command is an alias for <a>glDrawRangeElements</a>.
glDrawRangeElementsEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()
glDrawTexfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glDrawTexfvOES :: MonadIO m => Ptr GLfloat -> m ()
glDrawTexiOES :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
glDrawTexivOES :: MonadIO m => Ptr GLint -> m ()
glDrawTexsOES :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glDrawTexsvOES :: MonadIO m => Ptr GLshort -> m ()
glDrawTextureNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glDrawTexxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glDrawTexxvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glDrawTransformFeedback</a>.
glDrawTransformFeedbackEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawTransformFeedbackInstanced</a>.
glDrawTransformFeedbackInstancedEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawTransformFeedback</a>.
glDrawTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
glDrawVkImageNV :: MonadIO m => GLuint64 -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glEGLImageTargetRenderbufferStorageOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()
glEGLImageTargetTexture2DOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()
glEdgeFlagFormatNV :: MonadIO m => GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()
glEdgeFlagPointerEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLboolean -> m ()
glEdgeFlagPointerListIBM :: MonadIO m => GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()
glElementPointerAPPLE :: MonadIO m => GLenum -> Ptr a -> m ()
glElementPointerATI :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()
glEnableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glEnableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
glEnableDriverControlQCOM :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glEnablei</a>.
glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glEnableVariantClientStateEXT :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
glEnableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
glEnableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
glEnableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glEnableVertexAttribArray</a>.
glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glEnablei</a>.
glEnableiEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glEnablei</a>.
glEnableiNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glEnablei</a>.
glEnableiOES :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | This command is an alias for <a>glEndConditionalRender</a>.
glEndConditionalRenderNV :: MonadIO m => m ()

-- | This command is an alias for <a>glEndConditionalRender</a>.
glEndConditionalRenderNVX :: MonadIO m => m ()
glEndFragmentShaderATI :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()
glEndOcclusionQueryNV :: MonadIO m => m ()
glEndPerfMonitorAMD :: MonadIO m => GLuint -> m ()
glEndPerfQueryINTEL :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glEndQuery</a>.
glEndQueryARB :: MonadIO m => GLenum -> m ()
glEndQueryEXT :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()
glEndTilingQCOM :: MonadIO m => GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | This command is an alias for <a>glEndTransformFeedback</a>.
glEndTransformFeedbackEXT :: MonadIO m => m ()

-- | This command is an alias for <a>glEndTransformFeedback</a>.
glEndTransformFeedbackNV :: MonadIO m => m ()
glEndVertexShaderEXT :: MonadIO m => m ()
glEndVideoCaptureNV :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
glEvalCoord1xOES :: MonadIO m => GLfixed -> m ()
glEvalCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
glEvalCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glEvalCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
glEvalMapsNV :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()
glEvaluateDepthValuesARB :: MonadIO m => m ()
glExecuteProgramNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glExtGetBufferPointervQCOM :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()
glExtGetBuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetFramebuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetProgramBinarySourceQCOM :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> m ()
glExtGetProgramsQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetRenderbuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetShadersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetTexLevelParameterivQCOM :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
glExtGetTexSubImageQCOM :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glExtGetTexturesQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtIsProgramBinaryQCOM :: MonadIO m => GLuint -> m GLboolean
glExtTexObjectStateOverrideiQCOM :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glExtractComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()
glFeedbackBufferxOES :: MonadIO m => GLsizei -> GLenum -> Ptr GLfixed -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | This command is an alias for <a>glFenceSync</a>.
glFenceSyncAPPLE :: MonadIO m => GLenum -> GLbitfield -> m GLsync
glFinalCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()
glFinishAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint
glFinishFenceAPPLE :: MonadIO m => GLuint -> m ()
glFinishFenceNV :: MonadIO m => GLuint -> m ()
glFinishObjectAPPLE :: MonadIO m => GLenum -> GLint -> m ()
glFinishTextureSUNX :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | This command is an alias for <a>glFlushMappedBufferRange</a>.
glFlushMappedBufferRangeAPPLE :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | This command is an alias for <a>glFlushMappedBufferRange</a>.
glFlushMappedBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
glFlushMappedNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
glFlushPixelDataRangeNV :: MonadIO m => GLenum -> m ()
glFlushRasterSGIX :: MonadIO m => m ()
glFlushStaticDataIBM :: MonadIO m => GLenum -> m ()
glFlushVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr a -> m ()
glFlushVertexArrayRangeNV :: MonadIO m => m ()
glFogCoordFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glFogCoordPointer</a>.
glFogCoordPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()
glFogCoordPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | The vector equivalent of this command is <a>glFogCoorddvEXT</a>. This
--   command is an alias for <a>glFogCoordd</a>.
glFogCoorddEXT :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glFogCoorddv</a>.
glFogCoorddvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | The vector equivalent of this command is <a>glFogCoordfvEXT</a>. This
--   command is an alias for <a>glFogCoordf</a>.
glFogCoordfEXT :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | This command is an alias for <a>glFogCoordfv</a>.
glFogCoordfvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glFogCoordhvNV</a>.
glFogCoordhNV :: MonadIO m => GLhalfNV -> m ()
glFogCoordhvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glFogFuncSGIS :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glFogx :: MonadIO m => GLenum -> GLfixed -> m ()
glFogxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glFogxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glFogxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glFragmentColorMaterialSGIX :: MonadIO m => GLenum -> GLenum -> m ()
glFragmentCoverageColorNV :: MonadIO m => GLuint -> m ()
glFragmentLightModelfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
glFragmentLightModelfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glFragmentLightModeliSGIX :: MonadIO m => GLenum -> GLint -> m ()
glFragmentLightModelivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
glFragmentLightfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentLightiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glFragmentMaterialfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentMaterialiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glFrameTerminatorGREMEDY :: MonadIO m => m ()
glFrameZoomSGIX :: MonadIO m => GLint -> m ()
glFramebufferDrawBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
glFramebufferDrawBuffersEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
glFramebufferFetchBarrierQCOM :: MonadIO m => m ()
glFramebufferFoveationConfigQCOM :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLuint -> m ()
glFramebufferFoveationParametersQCOM :: MonadIO m => GLuint -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFramebufferPixelLocalStorageSizeEXT :: MonadIO m => GLuint -> GLsizei -> m ()
glFramebufferReadBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glFramebufferRenderbuffer</a>.
glFramebufferRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
glFramebufferRenderbufferOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
glFramebufferSampleLocationsfvARB :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glFramebufferSampleLocationsfvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glFramebufferSamplePositionsfvAMD :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTexture1D</a>.
glFramebufferTexture1DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTexture2DDownsampleIMG :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTexture2D</a>.
glFramebufferTexture2DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTexture2DMultisampleEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
glFramebufferTexture2DMultisampleIMG :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
glFramebufferTexture2DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTexture3D</a>.
glFramebufferTexture3DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glFramebufferTexture3DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTextureFaceARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()

-- | This command is an alias for <a>glFramebufferTextureFaceARB</a>.
glFramebufferTextureFaceEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTextureLayer</a>.
glFramebufferTextureLayerARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glFramebufferTextureLayerDownsampleIMG :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTextureLayer</a>.
glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glFramebufferTextureMultisampleMultiviewOVR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> m ()
glFramebufferTextureMultiviewOVR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> m ()

-- | This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureOES :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
glFreeObjectBufferATI :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glFrustumf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glFrustumfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glFrustumx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glFrustumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glGenAsyncMarkersSGIX :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenBuffers</a>.
glGenBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenFragmentShadersATI :: MonadIO m => GLuint -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenFramebuffers</a>.
glGenFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint
glGenNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glGenOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenPathsNV :: MonadIO m => GLsizei -> m GLuint
glGenPerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenProgramsARB</a>.
glGenProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenQueries</a>.
glGenQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenQueryResourceTagNV :: MonadIO m => GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenRenderbuffers</a>.
glGenRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenSemaphoresEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenSymbolsEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenTransformFeedbacks</a>.
glGenTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenVertexArrays</a>.
glGenVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenVertexArrays</a>.
glGenVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenVertexShadersEXT :: MonadIO m => GLuint -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glGenerateMipmap</a>.
glGenerateMipmapEXT :: MonadIO m => GLenum -> m ()
glGenerateMipmapOES :: MonadIO m => GLenum -> m ()
glGenerateMultiTexMipmapEXT :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()
glGenerateTextureMipmapEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glGetActiveAttrib</a>.
glGetActiveAttribARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glGetActiveUniform</a>.
glGetActiveUniformARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
glGetActiveVaryingNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
glGetArrayObjectfvATI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetArrayObjectivATI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetAttachedObjectsARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | This command is an alias for <a>glGetAttribLocation</a>.
glGetAttribLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint

-- | This command is an alias for <a>glGetBooleani_v</a>.
glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetBufferParameteriv</a>.
glGetBufferParameterivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetBufferParameterui64vNV :: MonadIO m => GLenum -> GLenum -> Ptr GLuint64EXT -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetBufferPointerv</a>.
glGetBufferPointervARB :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetBufferPointerv</a>.
glGetBufferPointervOES :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | This command is an alias for <a>glGetBufferSubData</a>.
glGetBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glGetClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glGetClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glGetColorTable</a>.
glGetColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetColorTableParameterfv</a>.
glGetColorTableParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetColorTableParameteriv</a>.
glGetColorTableParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()
glGetCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetCombinerOutputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCombinerOutputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCommandHeaderNV :: MonadIO m => GLenum -> GLuint -> m GLuint
glGetCompressedMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | This command is an alias for <a>glGetCompressedTexImage</a>.
glGetCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr a -> m ()
glGetCompressedTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()
glGetConvolutionFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
glGetDebugMessageLogAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | This command is an alias for <a>glGetDebugMessageLog</a>.
glGetDebugMessageLogARB :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | This command is an alias for <a>glGetDebugMessageLog</a>.
glGetDebugMessageLogKHR :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
glGetDetailTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetDoublei_v</a>.
glGetDoubleIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glGetDoublei_v</a>.
glGetDoublei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glGetDriverControlStringQCOM :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetDriverControlsQCOM :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum
glGetFenceivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetFinalCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFinalCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFirstPerfQueryIdINTEL :: MonadIO m => Ptr GLuint -> m ()
glGetFixedv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glGetFixedvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | This command is an alias for <a>glGetFloati_v</a>.
glGetFloatIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetFloati_v</a>.
glGetFloati_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetFloati_v</a>.
glGetFloati_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetFloati_v</a>.
glGetFloati_vOES :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetFogFuncSGIS :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | This command is an alias for <a>glGetFragDataIndex</a>.
glGetFragDataIndexEXT :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | This command is an alias for <a>glGetFragDataLocation</a>.
glGetFragDataLocationEXT :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
glGetFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for
--   <a>glGetFramebufferAttachmentParameteriv</a>.
glGetFramebufferAttachmentParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetFramebufferAttachmentParameterivOES :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetFramebufferParameterfvAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetFramebufferPixelLocalStorageSizeEXT :: MonadIO m => GLuint -> m GLsizei

-- | Manual page for <a>OpenGL 4.x</a>.
glGetGraphicsResetStatus :: MonadIO m => m GLenum
glGetGraphicsResetStatusARB :: MonadIO m => m GLenum
glGetGraphicsResetStatusEXT :: MonadIO m => m GLenum

-- | This command is an alias for <a>glGetGraphicsResetStatus</a>.
glGetGraphicsResetStatusKHR :: MonadIO m => m GLenum
glGetHandleARB :: MonadIO m => GLenum -> m GLhandleARB

-- | Manual page for <a>OpenGL 2.x</a>.
glGetHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> m ()
glGetHistogramEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetHistogramParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetHistogramParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetHistogramParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetHistogramParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetHistogramParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetImageHandleARB :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
glGetImageHandleNV :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
glGetImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetInfoLogARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
glGetInstrumentsSGIX :: MonadIO m => m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | This command is an alias for <a>glGetInteger64v</a>.
glGetInteger64vAPPLE :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | This command is an alias for <a>glGetIntegeri_v</a>.
glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetIntegeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetIntegerui64i_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint64EXT -> m ()
glGetIntegerui64vNV :: MonadIO m => GLenum -> Ptr GLuint64EXT -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glGetInternalformatSampleivNV :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
glGetInvariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
glGetInvariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetInvariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetLightxOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetLocalConstantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
glGetLocalConstantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetLocalConstantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetMapAttribParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetMapAttribParameterivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr a -> m ()
glGetMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMapxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glGetMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetMemoryObjectParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> m ()
glGetMinmaxEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMinmaxParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMinmaxParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMinmaxParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMinmaxParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
glGetMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glGetMultiTexLevelParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
glGetMultiTexLevelParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
glGetMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
glGetMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetMultisamplefv</a>.
glGetMultisamplefvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedBufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedBufferParameterui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()
glGetNamedBufferPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()
glGetNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetNamedFramebufferAttachmentParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetNamedFramebufferParameterfvAMD :: MonadIO m => GLuint -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedProgramLocalParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
glGetNamedProgramLocalParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
glGetNamedProgramLocalParameterdvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetNamedProgramLocalParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr a -> m ()
glGetNamedProgramivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedRenderbufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()
glGetNamedStringivARB :: MonadIO m => GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()
glGetNextPerfQueryIdINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glGetObjectBufferfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetObjectBufferivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectLabelEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glGetObjectLabel</a>.
glGetObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectParameterfvARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLfloat -> m ()
glGetObjectParameterivAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetObjectParameterivARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glGetObjectPtrLabel</a>.
glGetObjectPtrLabelKHR :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetOcclusionQueryivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetOcclusionQueryuivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetPathColorGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetPathColorGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetPathCommandsNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glGetPathCoordsNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glGetPathDashArrayNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glGetPathLengthNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> m GLfloat
glGetPathMetricRangeNV :: MonadIO m => GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
glGetPathMetricsNV :: MonadIO m => GLbitfield -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glGetPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetPathSpacingNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()
glGetPathTexGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetPathTexGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetPerfCounterInfoINTEL :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()
glGetPerfMonitorCounterDataAMD :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()
glGetPerfMonitorCounterInfoAMD :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr a -> m ()
glGetPerfMonitorCounterStringAMD :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetPerfMonitorCountersAMD :: MonadIO m => GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
glGetPerfMonitorGroupStringAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetPerfMonitorGroupsAMD :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
glGetPerfQueryDataINTEL :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr a -> Ptr GLuint -> m ()
glGetPerfQueryIdByNameINTEL :: MonadIO m => Ptr GLchar -> Ptr GLuint -> m ()
glGetPerfQueryInfoINTEL :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()
glGetPixelMapxv :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()
glGetPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()
glGetPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetPointerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr a) -> m ()
glGetPointeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetPointerv</a>.
glGetPointervEXT :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetPointerv</a>.
glGetPointervKHR :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glGetProgramBinary</a>.
glGetProgramBinaryOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()
glGetProgramEnvParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetProgramEnvParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetProgramLocalParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetProgramLocalParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetProgramNamedParameterdvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()
glGetProgramNamedParameterfvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()
glGetProgramParameterdvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetProgramParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetProgramPipelineInfoLogEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetProgramPipelineivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
glGetProgramResourceLocationIndexEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetProgramResourcefvNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()
glGetProgramStringNV :: MonadIO m => GLuint -> GLenum -> Ptr GLubyte -> m ()
glGetProgramSubroutineParameteruivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetProgramivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | This command is an alias for <a>glGetQueryObjecti64v</a>.
glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetQueryObjectiv</a>.
glGetQueryObjectivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetQueryObjectiv</a>.
glGetQueryObjectivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | This command is an alias for <a>glGetQueryObjectui64v</a>.
glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetQueryObjectuiv</a>.
glGetQueryObjectuivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetQueryiv</a>.
glGetQueryivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetRenderbufferParameteriv</a>.
glGetRenderbufferParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetRenderbufferParameterivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetSamplerParameterIiv</a>.
glGetSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetSamplerParameterIiv</a>.
glGetSamplerParameterIivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetSamplerParameterIuiv</a>.
glGetSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetSamplerParameterIuiv</a>.
glGetSamplerParameterIuivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetSemaphoreParameterui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> m ()
glGetSeparableFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glGetShaderSource</a>.
glGetShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetSharpenTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetStageIndexNV :: MonadIO m => GLenum -> m GLushort

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetSynciv</a>.
glGetSyncivAPPLE :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
glGetTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
glGetTexLevelParameterxvOES :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetTexParameterIiv</a>.
glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetTexParameterIiv</a>.
glGetTexParameterIivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetTexParameterIuiv</a>.
glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetTexParameterIuiv</a>.
glGetTexParameterIuivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glGetTexParameterPointervAPPLE :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetTextureHandleARB :: MonadIO m => GLuint -> m GLuint64

-- | This command is an alias for <a>glGetTextureHandleARB</a>.
glGetTextureHandleIMG :: MonadIO m => GLuint -> m GLuint64
glGetTextureHandleNV :: MonadIO m => GLuint -> m GLuint64

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
glGetTextureLevelParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
glGetTextureLevelParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetTextureSamplerHandleARB :: MonadIO m => GLuint -> GLuint -> m GLuint64

-- | This command is an alias for <a>glGetTextureSamplerHandleARB</a>.
glGetTextureSamplerHandleIMG :: MonadIO m => GLuint -> GLuint -> m GLuint64
glGetTextureSamplerHandleNV :: MonadIO m => GLuint -> GLuint -> m GLuint64

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetTrackMatrixivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glGetTransformFeedbackVarying</a>.
glGetTransformFeedbackVaryingEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
glGetTransformFeedbackVaryingNV :: MonadIO m => GLuint -> GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetTranslatedShaderSourceANGLE :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint
glGetUniformBufferSizeEXT :: MonadIO m => GLuint -> GLint -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | This command is an alias for <a>glGetUniformLocation</a>.
glGetUniformLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint
glGetUniformOffsetEXT :: MonadIO m => GLuint -> GLint -> m GLintptr

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetUniformfv</a>.
glGetUniformfvARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLfloat -> m ()
glGetUniformi64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLint64 -> m ()
glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetUniformiv</a>.
glGetUniformivARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLint -> m ()
glGetUniformui64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLuint64 -> m ()
glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetUniformuiv</a>.
glGetUniformuivEXT :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
glGetUnsignedBytei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLubyte -> m ()
glGetUnsignedBytevEXT :: MonadIO m => GLenum -> Ptr GLubyte -> m ()
glGetVariantArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVariantArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
glGetVariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVariantPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()
glGetVaryingLocationNV :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexArrayIntegeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexArrayIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexArrayPointeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr (Ptr a) -> m ()
glGetVertexArrayPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexAttribArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVertexAttribArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetVertexAttribIiv</a>.
glGetVertexAttribIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetVertexAttribIuiv</a>.
glGetVertexAttribIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glGetVertexAttribLdv</a>.
glGetVertexAttribLdvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetVertexAttribLi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
glGetVertexAttribLui64vARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
glGetVertexAttribLui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetVertexAttribPointerv</a>.
glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetVertexAttribPointerv</a>.
glGetVertexAttribPointervNV :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glGetVertexAttribdv</a>.
glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glGetVertexAttribdv</a>.
glGetVertexAttribdvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetVertexAttribfv</a>.
glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetVertexAttribfv</a>.
glGetVertexAttribfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetVertexAttribiv</a>.
glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetVertexAttribiv</a>.
glGetVertexAttribivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVideoCaptureStreamdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetVideoCaptureStreamfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVideoCaptureStreamivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetVideoCaptureivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVideoi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
glGetVideoivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVideoui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
glGetVideouivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetVkProcAddrNV :: MonadIO m => Ptr GLchar -> m GLVULKANPROCNV
glGetnColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnColorTableARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnCompressedTexImage :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr a -> m ()
glGetnCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr a -> m ()
glGetnConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnConvolutionFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnHistogramARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnMapdv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
glGetnMapdvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
glGetnMapfv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnMapfvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnMapiv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
glGetnMapivARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
glGetnMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnMinmaxARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnPixelMapfvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glGetnPixelMapuivARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glGetnPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
glGetnPixelMapusvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
glGetnPolygonStipple :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
glGetnPolygonStippleARB :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
glGetnSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> GLsizei -> Ptr b -> Ptr c -> m ()
glGetnSeparableFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> GLsizei -> Ptr b -> Ptr c -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnTexImageARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformdv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glGetnUniformdvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glGetnUniformfvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetnUniformfv</a>.
glGetnUniformfvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetnUniformfv</a>.
glGetnUniformfvKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glGetnUniformi64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glGetnUniformivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetnUniformiv</a>.
glGetnUniformivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetnUniformiv</a>.
glGetnUniformivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glGetnUniformui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glGetnUniformuivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetnUniformuiv</a>.
glGetnUniformuivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glGlobalAlphaFactorbSUN :: MonadIO m => GLbyte -> m ()
glGlobalAlphaFactordSUN :: MonadIO m => GLdouble -> m ()
glGlobalAlphaFactorfSUN :: MonadIO m => GLfloat -> m ()
glGlobalAlphaFactoriSUN :: MonadIO m => GLint -> m ()
glGlobalAlphaFactorsSUN :: MonadIO m => GLshort -> m ()
glGlobalAlphaFactorubSUN :: MonadIO m => GLubyte -> m ()
glGlobalAlphaFactoruiSUN :: MonadIO m => GLuint -> m ()
glGlobalAlphaFactorusSUN :: MonadIO m => GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()
glHintPGI :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glHistogram :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()

-- | This command is an alias for <a>glHistogram</a>.
glHistogramEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
glIglooInterfaceSGIX :: MonadIO m => GLenum -> Ptr a -> m ()
glImageTransformParameterfHP :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glImageTransformParameteriHP :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glImportMemoryFdEXT :: MonadIO m => GLuint -> GLuint64 -> GLenum -> GLint -> m ()
glImportMemoryWin32HandleEXT :: MonadIO m => GLuint -> GLuint64 -> GLenum -> Ptr a -> m ()
glImportMemoryWin32NameEXT :: MonadIO m => GLuint -> GLuint64 -> GLenum -> Ptr a -> m ()
glImportSemaphoreFdEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glImportSemaphoreWin32HandleEXT :: MonadIO m => GLuint -> GLenum -> Ptr a -> m ()
glImportSemaphoreWin32NameEXT :: MonadIO m => GLuint -> GLenum -> Ptr a -> m ()
glImportSyncEXT :: MonadIO m => GLenum -> GLintptr -> GLbitfield -> m GLsync
glIndexFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
glIndexFuncEXT :: MonadIO m => GLenum -> GLclampf -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()
glIndexMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()
glIndexPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()
glIndexPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()
glIndexxOES :: MonadIO m => GLfixed -> m ()
glIndexxvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()
glInsertComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glInsertEventMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
glInstrumentsBufferSGIX :: MonadIO m => GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()
glInterpolatePathsNV :: MonadIO m => GLuint -> GLuint -> GLuint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
glIsAsyncMarkerSGIX :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glIsBuffer</a>.
glIsBufferARB :: MonadIO m => GLuint -> m GLboolean
glIsBufferResidentNV :: MonadIO m => GLenum -> m GLboolean
glIsCommandListNV :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | This command is an alias for <a>glIsEnabledi</a>.
glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | This command is an alias for <a>glIsEnabledi</a>.
glIsEnablediEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | This command is an alias for <a>glIsEnabledi</a>.
glIsEnablediNV :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | This command is an alias for <a>glIsEnabledi</a>.
glIsEnablediOES :: MonadIO m => GLenum -> GLuint -> m GLboolean
glIsFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
glIsFenceNV :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glIsFramebuffer</a>.
glIsFramebufferEXT :: MonadIO m => GLuint -> m GLboolean
glIsFramebufferOES :: MonadIO m => GLuint -> m GLboolean
glIsImageHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
glIsImageHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean
glIsMemoryObjectEXT :: MonadIO m => GLuint -> m GLboolean
glIsNameAMD :: MonadIO m => GLenum -> GLuint -> m GLboolean
glIsNamedBufferResidentNV :: MonadIO m => GLuint -> m GLboolean
glIsNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m GLboolean
glIsObjectBufferATI :: MonadIO m => GLuint -> m GLboolean
glIsOcclusionQueryNV :: MonadIO m => GLuint -> m GLboolean
glIsPathNV :: MonadIO m => GLuint -> m GLboolean
glIsPointInFillPathNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean
glIsPointInStrokePathNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean
glIsProgramARB :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glIsProgramARB</a>.
glIsProgramNV :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean
glIsProgramPipelineEXT :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glIsQuery</a>.
glIsQueryARB :: MonadIO m => GLuint -> m GLboolean
glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glIsRenderbuffer</a>.
glIsRenderbufferEXT :: MonadIO m => GLuint -> m GLboolean
glIsRenderbufferOES :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean
glIsSemaphoreEXT :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean
glIsStateNV :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | This command is an alias for <a>glIsSync</a>.
glIsSyncAPPLE :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean
glIsTextureEXT :: MonadIO m => GLuint -> m GLboolean
glIsTextureHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
glIsTextureHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glIsTransformFeedback</a>.
glIsTransformFeedbackNV :: MonadIO m => GLuint -> m GLboolean
glIsVariantEnabledEXT :: MonadIO m => GLuint -> GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glIsVertexArray</a>.
glIsVertexArrayAPPLE :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glIsVertexArray</a>.
glIsVertexArrayOES :: MonadIO m => GLuint -> m GLboolean
glIsVertexAttribEnabledAPPLE :: MonadIO m => GLuint -> GLenum -> m GLboolean
glLGPUCopyImageSubDataNVX :: MonadIO m => GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
glLGPUInterlockNVX :: MonadIO m => m ()
glLGPUNamedBufferSubDataNVX :: MonadIO m => GLbitfield -> GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()
glLabelObjectEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
glLightEnviSGIX :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glLightModelx :: MonadIO m => GLenum -> GLfixed -> m ()
glLightModelxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glLightModelxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glLightModelxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glLightx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glLightxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()
glLineWidthx :: MonadIO m => GLfixed -> m ()
glLineWidthxOES :: MonadIO m => GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glLinkProgram</a>.
glLinkProgramARB :: MonadIO m => GLhandleARB -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()
glListDrawCommandsStatesClientNV :: MonadIO m => GLuint -> GLuint -> Ptr (Ptr a) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
glListParameterfSGIX :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
glListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glListParameteriSGIX :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()
glLoadIdentityDeformationMapSGIX :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glLoadMatrixx :: MonadIO m => Ptr GLfixed -> m ()
glLoadMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()
glLoadPaletteFromModelViewMatrixOES :: MonadIO m => m ()
glLoadProgramNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glLoadTransposeMatrixd</a>.
glLoadTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | This command is an alias for <a>glLoadTransposeMatrixf</a>.
glLoadTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()
glLoadTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
glLockArraysEXT :: MonadIO m => GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()
glMakeBufferNonResidentNV :: MonadIO m => GLenum -> m ()
glMakeBufferResidentNV :: MonadIO m => GLenum -> GLenum -> m ()
glMakeImageHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
glMakeImageHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
glMakeImageHandleResidentARB :: MonadIO m => GLuint64 -> GLenum -> m ()
glMakeImageHandleResidentNV :: MonadIO m => GLuint64 -> GLenum -> m ()
glMakeNamedBufferNonResidentNV :: MonadIO m => GLuint -> m ()
glMakeNamedBufferResidentNV :: MonadIO m => GLuint -> GLenum -> m ()
glMakeTextureHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
glMakeTextureHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
glMakeTextureHandleResidentARB :: MonadIO m => GLuint64 -> m ()
glMakeTextureHandleResidentNV :: MonadIO m => GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glMap1xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glMap2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | This command is an alias for <a>glMapBuffer</a>.
glMapBufferARB :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | This command is an alias for <a>glMapBuffer</a>.
glMapBufferOES :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | This command is an alias for <a>glMapBufferRange</a>.
glMapBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)
glMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
glMapGrid1xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
glMapGrid2xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr a)
glMapNamedBufferEXT :: MonadIO m => GLuint -> GLenum -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)
glMapNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)
glMapObjectBufferATI :: MonadIO m => GLuint -> m (Ptr a)
glMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glMapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> m (Ptr a)
glMapVertexAttrib1dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glMapVertexAttrib1fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glMapVertexAttrib2dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glMapVertexAttrib2fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glMaterialx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glMatrixFrustumEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixIndexPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glMatrixIndexPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glMatrixIndexubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
glMatrixIndexuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
glMatrixIndexusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()
glMatrixLoad3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoad3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoadIdentityEXT :: MonadIO m => GLenum -> m ()
glMatrixLoadTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoadTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixLoadTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoaddEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixLoadfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()
glMatrixMult3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMult3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixMultTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultdEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixMultfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixOrthoEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixPopEXT :: MonadIO m => GLenum -> m ()
glMatrixPushEXT :: MonadIO m => GLenum -> m ()
glMatrixRotatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixRotatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glMatrixScaledEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixScalefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glMatrixTranslatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixTranslatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glMaxShaderCompilerThreadsKHR</a>.
glMaxShaderCompilerThreadsARB :: MonadIO m => GLuint -> m ()
glMaxShaderCompilerThreadsKHR :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()

-- | This command is an alias for <a>glMemoryBarrier</a>.
glMemoryBarrierEXT :: MonadIO m => GLbitfield -> m ()
glMemoryObjectParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | This command is an alias for <a>glMinSampleShading</a>.
glMinSampleShadingARB :: MonadIO m => GLfloat -> m ()

-- | This command is an alias for <a>glMinSampleShading</a>.
glMinSampleShadingOES :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMinmax :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()

-- | This command is an alias for <a>glMinmax</a>.
glMinmaxEXT :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glMultMatrixx :: MonadIO m => Ptr GLfixed -> m ()
glMultMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glMultTransposeMatrixd</a>.
glMultTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | This command is an alias for <a>glMultTransposeMatrixf</a>.
glMultTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()
glMultTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawArrays</a>.
glMultiDrawArraysEXT :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawArraysIndirect</a>.
glMultiDrawArraysIndirectAMD :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()
glMultiDrawArraysIndirectBindlessCountNV :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
glMultiDrawArraysIndirectBindlessNV :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> m ()
glMultiDrawArraysIndirectCount :: MonadIO m => GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawArraysIndirectCount</a>.
glMultiDrawArraysIndirectCountARB :: MonadIO m => GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawArraysIndirect</a>.
glMultiDrawArraysIndirectEXT :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()
glMultiDrawElementArrayAPPLE :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glMultiDrawElementsBaseVertex</a>.
glMultiDrawElementsBaseVertexEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glMultiDrawElements</a>.
glMultiDrawElementsEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawElementsIndirect</a>.
glMultiDrawElementsIndirectAMD :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()
glMultiDrawElementsIndirectBindlessCountNV :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
glMultiDrawElementsIndirectBindlessNV :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> m ()
glMultiDrawElementsIndirectCount :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawElementsIndirectCount</a>.
glMultiDrawElementsIndirectCountARB :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawElementsIndirect</a>.
glMultiDrawElementsIndirectEXT :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()
glMultiDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
glMultiModeDrawArraysIBM :: MonadIO m => Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()
glMultiModeDrawElementsIBM :: MonadIO m => Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> GLint -> m ()
glMultiTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoord1bOES :: MonadIO m => GLenum -> GLbyte -> m ()
glMultiTexCoord1bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1dv</a>.
--   This command is an alias for <a>glMultiTexCoord1d</a>.
glMultiTexCoord1dARB :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1fv</a>.
--   This command is an alias for <a>glMultiTexCoord1f</a>.
glMultiTexCoord1fARB :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1hvNV</a>.
glMultiTexCoord1hNV :: MonadIO m => GLenum -> GLhalfNV -> m ()
glMultiTexCoord1hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1iv</a>.
--   This command is an alias for <a>glMultiTexCoord1i</a>.
glMultiTexCoord1iARB :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1sv</a>.
--   This command is an alias for <a>glMultiTexCoord1s</a>.
glMultiTexCoord1sARB :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord1xOES :: MonadIO m => GLenum -> GLfixed -> m ()
glMultiTexCoord1xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glMultiTexCoord2bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> m ()
glMultiTexCoord2bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2dv</a>.
--   This command is an alias for <a>glMultiTexCoord2d</a>.
glMultiTexCoord2dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2fv</a>.
--   This command is an alias for <a>glMultiTexCoord2f</a>.
glMultiTexCoord2fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2hvNV</a>.
glMultiTexCoord2hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord2hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2iv</a>.
--   This command is an alias for <a>glMultiTexCoord2i</a>.
glMultiTexCoord2iARB :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2sv</a>.
--   This command is an alias for <a>glMultiTexCoord2s</a>.
glMultiTexCoord2sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> m ()
glMultiTexCoord2xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glMultiTexCoord3bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
glMultiTexCoord3bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3dv</a>.
--   This command is an alias for <a>glMultiTexCoord3d</a>.
glMultiTexCoord3dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3fv</a>.
--   This command is an alias for <a>glMultiTexCoord3f</a>.
glMultiTexCoord3fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3hvNV</a>.
glMultiTexCoord3hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord3hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3iv</a>.
--   This command is an alias for <a>glMultiTexCoord3i</a>.
glMultiTexCoord3iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3sv</a>.
--   This command is an alias for <a>glMultiTexCoord3s</a>.
glMultiTexCoord3sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord3xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> m ()
glMultiTexCoord3xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glMultiTexCoord4bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glMultiTexCoord4bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord4dv</a>.
--   This command is an alias for <a>glMultiTexCoord4d</a>.
glMultiTexCoord4dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord4fv</a>.
--   This command is an alias for <a>glMultiTexCoord4f</a>.
glMultiTexCoord4fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord4hvNV</a>.
glMultiTexCoord4hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord4hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord4iv</a>.
--   This command is an alias for <a>glMultiTexCoord4i</a>.
glMultiTexCoord4iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <tt>glMultiTexCoord4sv</tt>.
--   This command is an alias for <a>glMultiTexCoord4s</a>.
glMultiTexCoord4sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glMultiTexCoord4sv</a>.
glMultiTexCoord4svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord4x :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glMultiTexCoord4xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glMultiTexCoord4xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordPointerEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | The vector equivalent of this command is <a>glMultiTexEnvfvEXT</a>.
glMultiTexEnvfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
glMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexEnvivEXT</a>.
glMultiTexEnviEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
glMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glMultiTexGendvEXT</a>.
glMultiTexGendEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLdouble -> m ()
glMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexGenfvEXT</a>.
glMultiTexGenfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
glMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexGenivEXT</a>.
glMultiTexGeniEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
glMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glMultiTexParameterfvEXT</a>.
glMultiTexParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
glMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glMultiTexParameterivEXT</a>.
glMultiTexParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
glMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glMultiTexRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glMulticastBarrierNV :: MonadIO m => m ()
glMulticastBlitFramebufferNV :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
glMulticastBufferSubDataNV :: MonadIO m => GLbitfield -> GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()
glMulticastCopyBufferSubDataNV :: MonadIO m => GLuint -> GLbitfield -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
glMulticastCopyImageSubDataNV :: MonadIO m => GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
glMulticastFramebufferSampleLocationsfvNV :: MonadIO m => GLuint -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glMulticastGetQueryObjecti64vNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
glMulticastGetQueryObjectivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glMulticastGetQueryObjectui64vNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLuint64 -> m ()
glMulticastGetQueryObjectuivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLuint -> m ()
glMulticastWaitSyncNV :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLenum -> m ()
glNamedBufferDataEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLenum -> m ()
glNamedBufferPageCommitmentARB :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
glNamedBufferPageCommitmentEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | This command is an alias for <a>glNamedBufferStorage</a>.
glNamedBufferStorageEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()
glNamedBufferStorageExternalEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> m ()
glNamedBufferStorageMemEXT :: MonadIO m => GLuint -> GLsizeiptr -> GLuint -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | This command is an alias for <a>glNamedBufferSubData</a>.
glNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()
glNamedCopyBufferSubDataEXT :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glNamedFramebufferParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
glNamedFramebufferRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
glNamedFramebufferSampleLocationsfvARB :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glNamedFramebufferSampleLocationsfvNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glNamedFramebufferSamplePositionsfvAMD :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
glNamedFramebufferTexture1DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glNamedFramebufferTexture2DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glNamedFramebufferTexture3DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glNamedFramebufferTextureEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
glNamedFramebufferTextureFaceEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
glNamedFramebufferTextureLayerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glNamedProgramLocalParameter4dvEXT</a>.
glNamedProgramLocalParameter4dEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glNamedProgramLocalParameter4dvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glNamedProgramLocalParameter4fvEXT</a>.
glNamedProgramLocalParameter4fEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glNamedProgramLocalParameter4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glNamedProgramLocalParameterI4ivEXT</a>.
glNamedProgramLocalParameterI4iEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glNamedProgramLocalParameterI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glNamedProgramLocalParameterI4uivEXT</a>.
glNamedProgramLocalParameterI4uiEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glNamedProgramLocalParameterI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
glNamedProgramLocalParameters4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glNamedProgramLocalParametersI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
glNamedProgramLocalParametersI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
glNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
glNamedRenderbufferStorageEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glNamedRenderbufferStorageMultisampleCoverageEXT :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glNamedRenderbufferStorageMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glNamedStringARB :: MonadIO m => GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()
glNewObjectBufferATI :: MonadIO m => GLsizei -> Ptr a -> GLenum -> m GLuint

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glNormal3hvNV</a>.
glNormal3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glNormal3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormal3x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glNormal3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glNormal3xvOES :: MonadIO m => Ptr GLfixed -> m ()
glNormalFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()
glNormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()
glNormalPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glNormalPointervINTEL :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()
glNormalStream3bATI :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
glNormalStream3bvATI :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glNormalStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glNormalStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glNormalStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glNormalStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glNormalStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
glNormalStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glNormalStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
glNormalStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glObjectLabel</a>.
glObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glObjectPtrLabel</a>.
glObjectPtrLabelKHR :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()
glObjectPurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum
glObjectUnpurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glOrthof :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glOrthofOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glOrthox :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glOrthoxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glPNTrianglesfATI :: MonadIO m => GLenum -> GLfloat -> m ()
glPNTrianglesiATI :: MonadIO m => GLenum -> GLint -> m ()
glPassTexCoordATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()
glPassThroughxOES :: MonadIO m => GLfixed -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | This command is an alias for <a>glPatchParameteri</a>.
glPatchParameteriEXT :: MonadIO m => GLenum -> GLint -> m ()

-- | This command is an alias for <a>glPatchParameteri</a>.
glPatchParameteriOES :: MonadIO m => GLenum -> GLint -> m ()
glPathColorGenNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glPathCommandsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> m ()
glPathCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLenum -> Ptr a -> m ()
glPathCoverDepthFuncNV :: MonadIO m => GLenum -> m ()
glPathDashArrayNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glPathFogGenNV :: MonadIO m => GLenum -> m ()
glPathGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
glPathGlyphIndexRangeNV :: MonadIO m => GLenum -> Ptr a -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum
glPathGlyphRangeNV :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()
glPathGlyphsNV :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLbitfield -> GLsizei -> GLenum -> Ptr b -> GLenum -> GLuint -> GLfloat -> m ()
glPathMemoryGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> Ptr a -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
glPathParameterfNV :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
glPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glPathParameteriNV :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glPathStencilDepthOffsetNV :: MonadIO m => GLfloat -> GLfloat -> m ()
glPathStencilFuncNV :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
glPathStringNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr a -> m ()
glPathSubCommandsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> m ()
glPathSubCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr a -> m ()
glPathTexGenNV :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | This command is an alias for <a>glPauseTransformFeedback</a>.
glPauseTransformFeedbackNV :: MonadIO m => m ()
glPixelDataRangeNV :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
glPixelMapx :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()
glPixelStorex :: MonadIO m => GLenum -> GLfixed -> m ()
glPixelTexGenParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()
glPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glPixelTexGenParameteriSGIS :: MonadIO m => GLenum -> GLint -> m ()
glPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()
glPixelTexGenSGIX :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()
glPixelTransferxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glPixelTransformParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glPixelTransformParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()
glPixelZoomxOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glPointAlongPathNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | This command is an alias for <a>glPointParameterf</a>.
glPointParameterfARB :: MonadIO m => GLenum -> GLfloat -> m ()

-- | This command is an alias for <a>glPointParameterf</a>.
glPointParameterfEXT :: MonadIO m => GLenum -> GLfloat -> m ()

-- | This command is an alias for <tt>glPointParameterf</tt>.
glPointParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glPointParameterfv</a>.
glPointParameterfvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glPointParameterfv</a>.
glPointParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glPointParameterfv</a>.
glPointParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | This command is an alias for <a>glPointParameteri</a>.
glPointParameteriNV :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glPointParameteriv</a>.
glPointParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
glPointParameterx :: MonadIO m => GLenum -> GLfixed -> m ()
glPointParameterxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glPointParameterxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glPointParameterxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()
glPointSizePointerOES :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()
glPointSizex :: MonadIO m => GLfixed -> m ()
glPointSizexOES :: MonadIO m => GLfixed -> m ()
glPollAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint
glPollInstrumentsSGIX :: MonadIO m => Ptr GLint -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glPolygonMode</a>.
glPolygonModeNV :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
glPolygonOffsetClamp :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glPolygonOffsetClamp</a>.
glPolygonOffsetClampEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glPolygonOffsetEXT :: MonadIO m => GLfloat -> GLfloat -> m ()
glPolygonOffsetx :: MonadIO m => GLfixed -> GLfixed -> m ()
glPolygonOffsetxOES :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | This command is an alias for <a>glPopDebugGroup</a>.
glPopDebugGroupKHR :: MonadIO m => m ()
glPopGroupMarkerEXT :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()
glPresentFrameDualFillNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
glPresentFrameKeyedNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> m ()
glPrimitiveBoundingBox :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glPrimitiveBoundingBox</a>.
glPrimitiveBoundingBoxARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glPrimitiveBoundingBox</a>.
glPrimitiveBoundingBoxEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glPrimitiveBoundingBox</a>.
glPrimitiveBoundingBoxOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()
glPrimitiveRestartIndexNV :: MonadIO m => GLuint -> m ()
glPrimitiveRestartNV :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glPrioritizeTextures</a>.
glPrioritizeTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLclampf -> m ()
glPrioritizeTexturesxOES :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | This command is an alias for <a>glProgramBinary</a>.
glProgramBinaryOES :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLint -> m ()
glProgramBufferParametersIivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> m ()
glProgramBufferParametersIuivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> m ()
glProgramBufferParametersfvNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameter4dvARB</a>.
glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameter4fvARB</a>.
glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameterI4ivNV</a>.
glProgramEnvParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramEnvParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameterI4uivNV</a>.
glProgramEnvParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glProgramEnvParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glProgramEnvParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glProgramEnvParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
glProgramEnvParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameter4dvARB</a>.
glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameter4fvARB</a>.
glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameterI4ivNV</a>.
glProgramLocalParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramLocalParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameterI4uivNV</a>.
glProgramLocalParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glProgramLocalParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glProgramLocalParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glProgramLocalParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
glProgramLocalParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramNamedParameter4dvNV</a>.
glProgramNamedParameter4dNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramNamedParameter4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramNamedParameter4fvNV</a>.
glProgramNamedParameter4fNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramNamedParameter4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramParameter4dvNV</a>.
glProgramParameter4dNV :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramParameter4dvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramParameter4fvNV</a>.
glProgramParameter4fNV :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramParameter4fvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | This command is an alias for <a>glProgramParameteri</a>.
glProgramParameteriARB :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | This command is an alias for <a>glProgramParameteri</a>.
glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramParameters4dvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
glProgramParameters4fvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glProgramPathFragmentInputGenNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()
glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glProgramSubroutineParametersuivNV :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glProgramUniform1dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform1f</a>.
glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform1fv</a>.
glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
glProgramUniform1i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> m ()
glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
glProgramUniform1i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | This command is an alias for <tt>glProgramUniform1i</tt>.
glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glProgramUniform1iv</a>.
glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
glProgramUniform1ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
glProgramUniform1ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | This command is an alias for <a>glProgramUniform1ui</a>.
glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glProgramUniform1uiv</a>.
glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glProgramUniform2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform2f</a>.
glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform2fv</a>.
glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
glProgramUniform2i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> m ()
glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform2i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | This command is an alias for <a>glProgramUniform2i</a>.
glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glProgramUniform2iv</a>.
glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
glProgramUniform2ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> m ()
glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform2ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | This command is an alias for <a>glProgramUniform2ui</a>.
glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glProgramUniform2uiv</a>.
glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glProgramUniform3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform3f</a>.
glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform3fv</a>.
glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramUniform3i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform3i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | This command is an alias for <a>glProgramUniform3i</a>.
glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glProgramUniform3iv</a>.
glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
glProgramUniform3ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform3ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | This command is an alias for <a>glProgramUniform3ui</a>.
glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glProgramUniform3uiv</a>.
glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glProgramUniform4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform4f</a>.
glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform4fv</a>.
glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramUniform4i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform4i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | This command is an alias for <a>glProgramUniform4i</a>.
glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glProgramUniform4iv</a>.
glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glProgramUniform4ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform4ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | This command is an alias for <a>glProgramUniform4ui</a>.
glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glProgramUniform4uiv</a>.
glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformHandleui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()

-- | This command is an alias for <a>glProgramUniformHandleui64ARB</a>.
glProgramUniformHandleui64IMG :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
glProgramUniformHandleui64NV :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
glProgramUniformHandleui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | This command is an alias for <a>glProgramUniformHandleui64vARB</a>.
glProgramUniformHandleui64vIMG :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniformHandleui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix2fv</a>.
glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix2x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix2x3fv</a>.
glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix2x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix2x4fv</a>.
glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix3fv</a>.
glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix3x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix3x2fv</a>.
glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix3x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix3x4fv</a>.
glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix4fv</a>.
glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix4x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix4x2fv</a>.
glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix4x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix4x3fv</a>.
glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
glProgramUniformui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramVertexLimitNV :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glProvokingVertex</a>.
glProvokingVertexEXT :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()
glPushClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glPushDebugGroup</a>.
glPushDebugGroupKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
glPushGroupMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | This command is an alias for <a>glQueryCounter</a>.
glQueryCounterEXT :: MonadIO m => GLuint -> GLenum -> m ()
glQueryMatrixxOES :: MonadIO m => Ptr GLfixed -> Ptr GLint -> m GLbitfield
glQueryObjectParameteruiAMD :: MonadIO m => GLenum -> GLuint -> GLenum -> GLuint -> m ()
glQueryResourceNV :: MonadIO m => GLenum -> GLint -> GLuint -> Ptr GLint -> m GLint
glQueryResourceTagNV :: MonadIO m => GLint -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()
glRasterPos2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glRasterPos2xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()
glRasterPos3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glRasterPos3xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()
glRasterPos4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glRasterPos4xvOES :: MonadIO m => Ptr GLfixed -> m ()
glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()
glReadBufferIndexedEXT :: MonadIO m => GLenum -> GLint -> m ()
glReadBufferNV :: MonadIO m => GLenum -> m ()
glReadInstrumentsSGIX :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glReadnPixels</a>.
glReadnPixelsARB :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glReadnPixels</a>.
glReadnPixelsEXT :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glReadnPixels</a>.
glReadnPixelsKHR :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()
glRectxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glRectxvOES :: MonadIO m => Ptr GLfixed -> Ptr GLfixed -> m ()
glReferencePlaneSGIX :: MonadIO m => Ptr GLdouble -> m ()
glReleaseKeyedMutexWin32EXT :: MonadIO m => GLuint -> GLuint64 -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()
glRenderGpuMaskNV :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glRenderbufferStorage</a>.
glRenderbufferStorageEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageMultisampleANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageMultisampleAPPLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glRenderbufferStorageMultisample</a>.
glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageMultisampleIMG :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glRenderbufferStorageMultisample</a>.
glRenderbufferStorageMultisampleNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageOES :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
glReplacementCodePointerSUN :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr a) -> m ()
glReplacementCodeubSUN :: MonadIO m => GLubyte -> m ()
glReplacementCodeubvSUN :: MonadIO m => Ptr GLubyte -> m ()
glReplacementCodeuiColor3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiColor3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiColor4ubVertex3fSUN :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiColor4ubVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> m ()
glReplacementCodeuiNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiSUN :: MonadIO m => GLuint -> m ()
glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiTexCoord2fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> m ()
glReplacementCodeuivSUN :: MonadIO m => Ptr GLuint -> m ()
glReplacementCodeusSUN :: MonadIO m => GLushort -> m ()
glReplacementCodeusvSUN :: MonadIO m => Ptr GLushort -> m ()
glRequestResidentProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glResetHistogram :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glResetHistogram</a>.
glResetHistogramEXT :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glResetMinmax :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glResetMinmax</a>.
glResetMinmaxEXT :: MonadIO m => GLenum -> m ()
glResizeBuffersMESA :: MonadIO m => m ()
glResolveDepthValuesNV :: MonadIO m => m ()
glResolveMultisampleFramebufferAPPLE :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | This command is an alias for <a>glResumeTransformFeedback</a>.
glResumeTransformFeedbackNV :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glRotatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glRotatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | This command is an alias for <a>glSampleCoverage</a>.
glSampleCoverageARB :: MonadIO m => GLfloat -> GLboolean -> m ()
glSampleCoveragex :: MonadIO m => GLclampx -> GLboolean -> m ()
glSampleCoveragexOES :: MonadIO m => GLclampx -> GLboolean -> m ()
glSampleMapATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
glSampleMaskEXT :: MonadIO m => GLclampf -> GLboolean -> m ()
glSampleMaskIndexedNV :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | This command is an alias for <a>glSampleMaskEXT</a>.
glSampleMaskSGIS :: MonadIO m => GLclampf -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()
glSamplePatternEXT :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glSamplePatternEXT</a>.
glSamplePatternSGIS :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glSamplerParameterIiv</a>.
glSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glSamplerParameterIiv</a>.
glSamplerParameterIivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glSamplerParameterIuiv</a>.
glSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glSamplerParameterIuiv</a>.
glSamplerParameterIuivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glScalex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glScalexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glScissorArrayv</a>.
glScissorArrayvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glScissorArrayv</a>.
glScissorArrayvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glScissorIndexed</a>.
glScissorIndexedNV :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glScissorIndexed</a>.
glScissorIndexedOES :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glScissorIndexedv</a>.
glScissorIndexedvNV :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glScissorIndexedv</a>.
glScissorIndexedvOES :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3bvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3b</a>.
glSecondaryColor3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | This command is an alias for <a>glSecondaryColor3bv</a>.
glSecondaryColor3bvEXT :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3dvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3d</a>.
glSecondaryColor3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glSecondaryColor3dv</a>.
glSecondaryColor3dvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3fvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3f</a>.
glSecondaryColor3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | This command is an alias for <a>glSecondaryColor3fv</a>.
glSecondaryColor3fvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glSecondaryColor3hvNV</a>.
glSecondaryColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glSecondaryColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is
--   <tt>glSecondaryColor3ivEXT</tt>. This command is an alias for
--   <a>glSecondaryColor3i</a>.
glSecondaryColor3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | This command is an alias for <a>glSecondaryColor3iv</a>.
glSecondaryColor3ivEXT :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3svEXT</a>. This command is an alias for
--   <a>glSecondaryColor3s</a>.
glSecondaryColor3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | This command is an alias for <a>glSecondaryColor3sv</a>.
glSecondaryColor3svEXT :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3ubvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3ub</a>.
glSecondaryColor3ubEXT :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | This command is an alias for <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ubvEXT :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3uivEXT</a>. This command is an alias for
--   <a>glSecondaryColor3ui</a>.
glSecondaryColor3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | This command is an alias for <a>glSecondaryColor3uiv</a>.
glSecondaryColor3uivEXT :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3usvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3us</a>.
glSecondaryColor3usEXT :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | This command is an alias for <a>glSecondaryColor3usv</a>.
glSecondaryColor3usvEXT :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glSecondaryColorPointer</a>.
glSecondaryColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glSecondaryColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glSelectPerfMonitorCountersAMD :: MonadIO m => GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()
glSemaphoreParameterui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSeparableFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> Ptr b -> m ()

-- | This command is an alias for <a>glSeparableFilter2D</a>.
glSeparableFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> Ptr b -> m ()
glSetFenceAPPLE :: MonadIO m => GLuint -> m ()
glSetFenceNV :: MonadIO m => GLuint -> GLenum -> m ()
glSetFragmentShaderConstantATI :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glSetInvariantEXT :: MonadIO m => GLuint -> GLenum -> Ptr a -> m ()
glSetLocalConstantEXT :: MonadIO m => GLuint -> GLenum -> Ptr a -> m ()
glSetMultisamplefvAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()
glShaderOp1EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
glShaderOp2EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> m ()
glShaderOp3EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | This command is an alias for <a>glShaderSource</a>.
glShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glSharpenTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glSignalSemaphoreEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLuint -> GLuint -> Ptr GLuint -> Ptr GLenum -> m ()
glSignalVkFenceNV :: MonadIO m => GLuint64 -> m ()
glSignalVkSemaphoreNV :: MonadIO m => GLuint64 -> m ()
glSpecializeShader :: MonadIO m => GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glSpecializeShader</a>.
glSpecializeShaderARB :: MonadIO m => GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
glSpriteParameterfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
glSpriteParameterfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glSpriteParameteriSGIX :: MonadIO m => GLenum -> GLint -> m ()
glSpriteParameterivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
glStartInstrumentsSGIX :: MonadIO m => m ()
glStartTilingQCOM :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> m ()
glStateCaptureNV :: MonadIO m => GLuint -> GLenum -> m ()
glStencilClearTagEXT :: MonadIO m => GLsizei -> GLuint -> m ()
glStencilFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glStencilFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
glStencilFuncSeparateATI :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glStencilOpSeparate</a>.
glStencilOpSeparateATI :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
glStencilOpValueAMD :: MonadIO m => GLenum -> GLuint -> m ()
glStencilStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glStencilStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
glStencilThenCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glStencilThenCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> m ()
glStencilThenCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glStencilThenCoverStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> GLenum -> m ()
glStopInstrumentsSGIX :: MonadIO m => GLint -> m ()
glStringMarkerGREMEDY :: MonadIO m => GLsizei -> Ptr a -> m ()
glSubpixelPrecisionBiasNV :: MonadIO m => GLuint -> GLuint -> m ()
glSwizzleEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glSyncTextureINTEL :: MonadIO m => GLuint -> m ()
glTagSampleBufferSGIX :: MonadIO m => m ()

-- | The vector equivalent of this command is <a>glTangent3bvEXT</a>.
glTangent3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glTangent3bvEXT :: MonadIO m => Ptr GLbyte -> m ()

-- | The vector equivalent of this command is <a>glTangent3dvEXT</a>.
glTangent3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glTangent3dvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glTangent3fvEXT</a>.
glTangent3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glTangent3fvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glTangent3ivEXT</a>.
glTangent3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
glTangent3ivEXT :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glTangent3svEXT</a>.
glTangent3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glTangent3svEXT :: MonadIO m => Ptr GLshort -> m ()
glTangentPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()
glTbufferMask3DFX :: MonadIO m => GLuint -> m ()
glTessellationFactorAMD :: MonadIO m => GLfloat -> m ()
glTessellationModeAMD :: MonadIO m => GLenum -> m ()
glTestFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
glTestFenceNV :: MonadIO m => GLuint -> m GLboolean
glTestObjectAPPLE :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glTexBuffer</a>.
glTexBufferARB :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glTexBuffer</a>.
glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | This command is an alias for <tt>glTexBuffer</tt>.
glTexBufferOES :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | This command is an alias for <a>glTexBufferRange</a>.
glTexBufferRangeEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | This command is an alias for <a>glTexBufferRange</a>.
glTexBufferRangeOES :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glTexCoord1bOES :: MonadIO m => GLbyte -> m ()
glTexCoord1bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glTexCoord1hvNV</a>.
glTexCoord1hNV :: MonadIO m => GLhalfNV -> m ()
glTexCoord1hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoord1xOES :: MonadIO m => GLfixed -> m ()
glTexCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()
glTexCoord2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
glTexCoord2bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
glTexCoord2fColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glTexCoord2fColor4ubVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fColor4ubVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> m ()
glTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glTexCoord2fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glTexCoord2hvNV</a>.
glTexCoord2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
glTexCoord2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glTexCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
glTexCoord3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glTexCoord3bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glTexCoord3hvNV</a>.
glTexCoord3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glTexCoord3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoord3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glTexCoord3xvOES :: MonadIO m => Ptr GLfixed -> m ()
glTexCoord4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glTexCoord4bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord4fColor4fNormal3fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord4fColor4fNormal3fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glTexCoord4fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord4fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glTexCoord4hvNV</a>.
glTexCoord4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glTexCoord4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoord4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glTexCoord4xvOES :: MonadIO m => Ptr GLfixed -> m ()
glTexCoordFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glTexCoordPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()
glTexCoordPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glTexCoordPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexEnvx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glTexEnvxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glTexGenfOES :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glTexGeniOES :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage2DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glTexImage3D</a>.
glTexImage3DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage3DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTexImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTexPageCommitmentARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | This command is an alias for <a>glTexPageCommitmentARB</a>.
glTexPageCommitmentEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glTexParameterIiv</a>.
glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glTexParameterIiv</a>.
glTexParameterIivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glTexParameterIuiv</a>.
glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glTexParameterIuiv</a>.
glTexParameterIuivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexParameterx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glTexParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glTexRenderbufferNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | This command is an alias for <a>glTexStorage1D</a>.
glTexStorage1DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glTexStorage2D</a>.
glTexStorage2DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glTexStorage3D</a>.
glTexStorage3DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | This command is an alias for <a>glTexStorage3DMultisample</a>.
glTexStorage3DMultisampleOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexStorageMem1DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> m ()
glTexStorageMem2DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> m ()
glTexStorageMem2DMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> m ()
glTexStorageMem3DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> m ()
glTexStorageMem3DMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> m ()
glTexStorageSparseAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glTexSubImage1D</a>.
glTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glTexSubImage2D</a>.
glTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glTexSubImage3D</a>.
glTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glTexSubImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBarrier :: MonadIO m => m ()
glTextureBarrierNV :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
glTextureBufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glTextureBufferRangeEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glTextureColorMaskSGIS :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
glTextureFoveationParametersQCOM :: MonadIO m => GLuint -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTextureImage2DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage2DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTextureImage3DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage3DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureLightEXT :: MonadIO m => GLenum -> m ()
glTextureMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()
glTextureNormalEXT :: MonadIO m => GLenum -> m ()
glTexturePageCommitmentEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glTextureParameterfvEXT</a>.
glTextureParameterfEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glTextureParameterivEXT</a>.
glTextureParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glTextureRangeAPPLE :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()
glTextureRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureStorage2DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureStorage3DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureStorageMem1DEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> m ()
glTextureStorageMem2DEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> m ()
glTextureStorageMem2DMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> m ()
glTextureStorageMem3DEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> m ()
glTextureStorageMem3DMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> m ()
glTextureStorageSparseAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glTextureView</a>.
glTextureViewEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glTextureView</a>.
glTextureViewOES :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glTrackMatrixNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLenum -> m ()
glTransformFeedbackAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glTransformFeedbackStreamAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | This command is an alias for <a>glTransformFeedbackVaryings</a>.
glTransformFeedbackVaryingsEXT :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
glTransformFeedbackVaryingsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()
glTransformPathNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glTranslatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glTranslatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | This command is an alias for <a>glUniform1f</a>.
glUniform1fARB :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniform1fv</a>.
glUniform1fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()
glUniform1i64ARB :: MonadIO m => GLint -> GLint64 -> m ()
glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
glUniform1i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | This command is an alias for <a>glUniform1i</a>.
glUniform1iARB :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glUniform1iv</a>.
glUniform1ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()
glUniform1ui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()
glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
glUniform1ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | This command is an alias for <a>glUniform1ui</a>.
glUniform1uiEXT :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glUniform1uiv</a>.
glUniform1uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glUniform2f</a>.
glUniform2fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniform2fv</a>.
glUniform2fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glUniform2i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> m ()
glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
glUniform2i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | This command is an alias for <a>glUniform2i</a>.
glUniform2iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glUniform2iv</a>.
glUniform2ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
glUniform2ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> m ()
glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform2ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | This command is an alias for <a>glUniform2ui</a>.
glUniform2uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glUniform2uiv</a>.
glUniform2uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glUniform3f</a>.
glUniform3fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniform3fv</a>.
glUniform3fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glUniform3i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glUniform3i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | This command is an alias for <a>glUniform3i</a>.
glUniform3iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glUniform3iv</a>.
glUniform3ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
glUniform3ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform3ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | This command is an alias for <a>glUniform3ui</a>.
glUniform3uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glUniform3uiv</a>.
glUniform3uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <tt>glUniform4f</tt>.
glUniform4fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniform4fv</a>.
glUniform4fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
glUniform4i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glUniform4i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | This command is an alias for <a>glUniform4i</a>.
glUniform4iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glUniform4iv</a>.
glUniform4ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glUniform4ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform4ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | This command is an alias for <a>glUniform4ui</a>.
glUniform4uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glUniform4uiv</a>.
glUniform4uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformBufferEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
glUniformHandleui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()

-- | This command is an alias for <a>glUniformHandleui64ARB</a>.
glUniformHandleui64IMG :: MonadIO m => GLint -> GLuint64 -> m ()
glUniformHandleui64NV :: MonadIO m => GLint -> GLuint64 -> m ()
glUniformHandleui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | This command is an alias for <a>glUniformHandleui64vARB</a>.
glUniformHandleui64vIMG :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniformHandleui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix2fv</a>.
glUniformMatrix2fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix2x3fv</a>.
glUniformMatrix2x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix2x4fv</a>.
glUniformMatrix2x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix3fv</a>.
glUniformMatrix3fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix3x2fv</a>.
glUniformMatrix3x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix3x4fv</a>.
glUniformMatrix3x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix4fv</a>.
glUniformMatrix4fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix4x2fv</a>.
glUniformMatrix4x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix4x3fv</a>.
glUniformMatrix4x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glUniformui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
glUniformui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUnlockArraysEXT :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | This command is an alias for <a>glUnmapBuffer</a>.
glUnmapBufferARB :: MonadIO m => GLenum -> m GLboolean

-- | This command is an alias for <a>glUnmapBuffer</a>.
glUnmapBufferOES :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean
glUnmapNamedBufferEXT :: MonadIO m => GLuint -> m GLboolean
glUnmapObjectBufferATI :: MonadIO m => GLuint -> m ()
glUnmapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> m ()
glUpdateObjectBufferATI :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glUseProgram</a>.
glUseProgramObjectARB :: MonadIO m => GLhandleARB -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
glUseProgramStagesEXT :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
glUseShaderProgramEXT :: MonadIO m => GLenum -> GLuint -> m ()
glVDPAUFiniNV :: MonadIO m => m ()
glVDPAUGetSurfaceivNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
glVDPAUInitNV :: MonadIO m => Ptr a -> Ptr b -> m ()
glVDPAUIsSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m GLboolean
glVDPAUMapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
glVDPAURegisterOutputSurfaceNV :: MonadIO m => Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
glVDPAURegisterVideoSurfaceNV :: MonadIO m => Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
glVDPAUSurfaceAccessNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> m ()
glVDPAUUnmapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
glVDPAUUnregisterSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glValidateProgram</a>.
glValidateProgramARB :: MonadIO m => GLhandleARB -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()
glValidateProgramPipelineEXT :: MonadIO m => GLuint -> m ()
glVariantArrayObjectATI :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
glVariantPointerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr a -> m ()
glVariantbvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
glVariantdvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVariantfvEXT :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVariantivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVariantsvEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVariantubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVariantuivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVariantusvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glVertex2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
glVertex2bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertex2hvNV</a>.
glVertex2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
glVertex2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()
glVertex2xOES :: MonadIO m => GLfixed -> m ()
glVertex2xvOES :: MonadIO m => Ptr GLfixed -> m ()
glVertex3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glVertex3bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertex3hvNV</a>.
glVertex3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertex3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()
glVertex3xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glVertex3xvOES :: MonadIO m => Ptr GLfixed -> m ()
glVertex4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glVertex4bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertex4hvNV</a>.
glVertex4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertex4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()
glVertex4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glVertex4xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexArrayBindVertexBufferEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexArrayColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayEdgeFlagOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> GLintptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()
glVertexArrayFogCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayIndexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayMultiTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayNormalOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayParameteriAPPLE :: MonadIO m => GLenum -> GLint -> m ()
glVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr a -> m ()
glVertexArrayRangeNV :: MonadIO m => GLsizei -> Ptr a -> m ()
glVertexArraySecondaryColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayVertexAttribBindingEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexArrayVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexArrayVertexAttribFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexArrayVertexAttribIFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexArrayVertexAttribIOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayVertexAttribLFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexArrayVertexAttribLOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayVertexAttribOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
glVertexArrayVertexBindingDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
glVertexArrayVertexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1dvARB</a>.
--   This command is an alias for <a>glVertexAttrib1d</a>.
glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1dvNV</a>.
--   This command is an alias for <a>glVertexAttrib1d</a>.
glVertexAttrib1dNV :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib1dv</a>.
glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib1dv</a>.
glVertexAttrib1dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1fvARB</a>.
--   This command is an alias for <a>glVertexAttrib1f</a>.
glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1fvNV</a>.
--   This command is an alias for <a>glVertexAttrib1f</a>.
glVertexAttrib1fNV :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib1fv</a>.
glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib1fv</a>.
glVertexAttrib1fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1hvNV</a>.
glVertexAttrib1hNV :: MonadIO m => GLuint -> GLhalfNV -> m ()
glVertexAttrib1hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1svARB</a>.
--   This command is an alias for <a>glVertexAttrib1s</a>.
glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1svNV</a>.
--   This command is an alias for <a>glVertexAttrib1s</a>.
glVertexAttrib1sNV :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib1sv</a>.
glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib1sv</a>.
glVertexAttrib1svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2dvARB</a>.
--   This command is an alias for <a>glVertexAttrib2d</a>.
glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2dvNV</a>.
--   This command is an alias for <a>glVertexAttrib2d</a>.
glVertexAttrib2dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib2dv</a>.
glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib2dv</a>.
glVertexAttrib2dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2fvARB</a>.
--   This command is an alias for <a>glVertexAttrib2f</a>.
glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2fvNV</a>.
--   This command is an alias for <a>glVertexAttrib2f</a>.
glVertexAttrib2fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib2fv</a>.
glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib2fv</a>.
glVertexAttrib2fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <tt>glVertexAttrib2hvNV</tt>.
glVertexAttrib2hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib2hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2svARB</a>.
--   This command is an alias for <a>glVertexAttrib2s</a>.
glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2svNV</a>.
--   This command is an alias for <a>glVertexAttrib2s</a>.
glVertexAttrib2sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib2sv</a>.
glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib2sv</a>.
glVertexAttrib2svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3dvARB</a>.
--   This command is an alias for <a>glVertexAttrib3d</a>.
glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3dvNV</a>.
--   This command is an alias for <a>glVertexAttrib3d</a>.
glVertexAttrib3dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib3dv</a>.
glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib3dv</a>.
glVertexAttrib3dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3fvARB</a>.
--   This command is an alias for <a>glVertexAttrib3f</a>.
glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3fvNV</a>.
--   This command is an alias for <a>glVertexAttrib3f</a>.
glVertexAttrib3fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib3fv</a>.
glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib3fv</a>.
glVertexAttrib3fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3hvNV</a>.
glVertexAttrib3hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib3hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3svARB</a>.
--   This command is an alias for <a>glVertexAttrib3s</a>.
glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3svNV</a>.
--   This command is an alias for <a>glVertexAttrib3s</a>.
glVertexAttrib3sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib3sv</a>.
glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib3sv</a>.
glVertexAttrib3svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nbv</a>.
glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glVertexAttrib4Niv</a>.
glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nsv</a>.
glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nub</a>.
glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nubv</a>.
glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nuiv</a>.
glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nusv</a>.
glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4bv</a>.
glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4dvARB</a>.
--   This command is an alias for <a>glVertexAttrib4d</a>.
glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4dvNV</a>.
--   This command is an alias for <a>glVertexAttrib4d</a>.
glVertexAttrib4dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib4dv</a>.
glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib4dv</a>.
glVertexAttrib4dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4fvARB</a>.
--   This command is an alias for <a>glVertexAttrib4f</a>.
glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4fvNV</a>.
--   This command is an alias for <a>glVertexAttrib4f</a>.
glVertexAttrib4fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib4fv</a>.
glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib4fv</a>.
glVertexAttrib4fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4hvNV</a>.
glVertexAttrib4hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib4hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glVertexAttrib4iv</a>.
glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4svARB</a>.
--   This command is an alias for <a>glVertexAttrib4s</a>.
glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4svNV</a>.
--   This command is an alias for <a>glVertexAttrib4s</a>.
glVertexAttrib4sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4sv</a>.
glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4sv</a>.
glVertexAttrib4svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4ubvNV</a>.
--   This command is an alias for <a>glVertexAttrib4Nub</a>.
glVertexAttrib4ubNV :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4ubv</a>.
glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nubv</a>.
glVertexAttrib4ubvNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttrib4uiv</a>.
glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | This command is an alias for <a>glVertexAttrib4usv</a>.
glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glVertexAttribArrayObjectATI :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribDivisor</a>.
glVertexAttribDivisorANGLE :: MonadIO m => GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribDivisor</a>.
glVertexAttribDivisorARB :: MonadIO m => GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribDivisor</a>.
glVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribDivisor</a>.
glVertexAttribDivisorNV :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glVertexAttribI1ivEXT</a>.
--   This command is an alias for <a>glVertexAttribI1i</a>.
glVertexAttribI1iEXT :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glVertexAttribI1iv</a>.
glVertexAttribI1ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glVertexAttribI1uivEXT</a>. This command is an alias for
--   <a>glVertexAttribI1ui</a>.
glVertexAttribI1uiEXT :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI1uiv</a>.
glVertexAttribI1uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glVertexAttribI2ivEXT</a>.
--   This command is an alias for <a>glVertexAttribI2i</a>.
glVertexAttribI2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glVertexAttribI2iv</a>.
glVertexAttribI2ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glVertexAttribI2uivEXT</a>. This command is an alias for
--   <a>glVertexAttribI2ui</a>.
glVertexAttribI2uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI2uiv</a>.
glVertexAttribI2uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is
--   <tt>glVertexAttribI3ivEXT</tt>. This command is an alias for
--   <a>glVertexAttribI3i</a>.
glVertexAttribI3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glVertexAttribI3iv</a>.
glVertexAttribI3ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glVertexAttribI3uivEXT</a>. This command is an alias for
--   <a>glVertexAttribI3ui</a>.
glVertexAttribI3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI3uiv</a>.
glVertexAttribI3uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | This command is an alias for <a>glVertexAttribI4bv</a>.
glVertexAttribI4bvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glVertexAttribI4ivEXT</a>.
--   This command is an alias for <a>glVertexAttribI4i</a>.
glVertexAttribI4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glVertexAttribI4iv</a>.
glVertexAttribI4ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttribI4sv</a>.
glVertexAttribI4svEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttribI4ubv</a>.
glVertexAttribI4ubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glVertexAttribI4uivEXT</a>. This command is an alias for
--   <a>glVertexAttribI4ui</a>.
glVertexAttribI4uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI4uiv</a>.
glVertexAttribI4uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | This command is an alias for <a>glVertexAttribI4usv</a>.
glVertexAttribI4usvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexAttribIFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glVertexAttribIPointer</a>.
glVertexAttribIPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL1d</a>.
glVertexAttribL1dEXT :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL1dv</a>.
glVertexAttribL1dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL1i64NV :: MonadIO m => GLuint -> GLint64EXT -> m ()
glVertexAttribL1i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
glVertexAttribL1ui64ARB :: MonadIO m => GLuint -> GLuint64EXT -> m ()
glVertexAttribL1ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> m ()
glVertexAttribL1ui64vARB :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
glVertexAttribL1ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL2d</a>.
glVertexAttribL2dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL2dv</a>.
glVertexAttribL2dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL2i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> m ()
glVertexAttribL2i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
glVertexAttribL2ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> m ()
glVertexAttribL2ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL3d</a>.
glVertexAttribL3dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL3dv</a>.
glVertexAttribL3dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL3i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glVertexAttribL3i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
glVertexAttribL3ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glVertexAttribL3ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL4d</a>.
glVertexAttribL4dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL4dv</a>.
glVertexAttribL4dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL4i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glVertexAttribL4i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
glVertexAttribL4ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glVertexAttribL4ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexAttribLFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glVertexAttribLPointer</a>.
glVertexAttribLPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
glVertexAttribParameteriAMD :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glVertexAttribPointer</a>.
glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()
glVertexAttribPointerNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glVertexAttribs1dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs1fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs1hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs1svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs2dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs2fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs2hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs2svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs3dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs3fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs3hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs3svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs4hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs4svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs4ubvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
glVertexBlendARB :: MonadIO m => GLint -> m ()
glVertexBlendEnvfATI :: MonadIO m => GLenum -> GLfloat -> m ()
glVertexBlendEnviATI :: MonadIO m => GLenum -> GLint -> m ()
glVertexFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glVertexPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()
glVertexPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glVertexPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr a) -> m ()
glVertexStream1dATI :: MonadIO m => GLenum -> GLdouble -> m ()
glVertexStream1dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glVertexStream1fATI :: MonadIO m => GLenum -> GLfloat -> m ()
glVertexStream1fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glVertexStream1iATI :: MonadIO m => GLenum -> GLint -> m ()
glVertexStream1ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glVertexStream1sATI :: MonadIO m => GLenum -> GLshort -> m ()
glVertexStream1svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glVertexStream2dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
glVertexStream2dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glVertexStream2fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
glVertexStream2fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glVertexStream2iATI :: MonadIO m => GLenum -> GLint -> GLint -> m ()
glVertexStream2ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glVertexStream2sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
glVertexStream2svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glVertexStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glVertexStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glVertexStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
glVertexStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glVertexStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
glVertexStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glVertexStream4dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexStream4dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glVertexStream4fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexStream4fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glVertexStream4iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
glVertexStream4ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glVertexStream4sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glVertexStream4svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glVertexWeightPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | The vector equivalent of this command is <a>glVertexWeightfvEXT</a>.
glVertexWeightfEXT :: MonadIO m => GLfloat -> m ()
glVertexWeightfvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexWeighthvNV</a>.
glVertexWeighthNV :: MonadIO m => GLhalfNV -> m ()
glVertexWeighthvNV :: MonadIO m => Ptr GLhalfNV -> m ()
glVideoCaptureNV :: MonadIO m => GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum
glVideoCaptureStreamParameterdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
glVideoCaptureStreamParameterfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glVideoCaptureStreamParameterivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glViewportArrayv</a>.
glViewportArrayvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glViewportArrayv</a>.
glViewportArrayvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glViewportIndexedf</a>.
glViewportIndexedfNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glViewportIndexedf</a>.
glViewportIndexedfOES :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glViewportIndexedfv</a>.
glViewportIndexedfvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glViewportIndexedfv</a>.
glViewportIndexedfvOES :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glViewportPositionWScaleNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
glViewportSwizzleNV :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glWaitSemaphoreEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLuint -> GLuint -> Ptr GLuint -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | This command is an alias for <a>glWaitSync</a>.
glWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
glWaitVkSemaphoreNV :: MonadIO m => GLuint64 -> m ()
glWeightPathsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
glWeightPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glWeightPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glWeightbvARB :: MonadIO m => GLint -> Ptr GLbyte -> m ()
glWeightdvARB :: MonadIO m => GLint -> Ptr GLdouble -> m ()
glWeightfvARB :: MonadIO m => GLint -> Ptr GLfloat -> m ()
glWeightivARB :: MonadIO m => GLint -> Ptr GLint -> m ()
glWeightsvARB :: MonadIO m => GLint -> Ptr GLshort -> m ()
glWeightubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
glWeightuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
glWeightusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2dvARB</a>.
--   This command is an alias for <a>glWindowPos2d</a>.
glWindowPos2dARB :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2dvMESA</a>.
--   This command is an alias for <a>glWindowPos2d</a>.
glWindowPos2dMESA :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glWindowPos2dv</a>.
glWindowPos2dvARB :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glWindowPos2dv</a>.
glWindowPos2dvMESA :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2fvARB</a>.
--   This command is an alias for <a>glWindowPos2f</a>.
glWindowPos2fARB :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2fvMESA</a>.
--   This command is an alias for <a>glWindowPos2f</a>.
glWindowPos2fMESA :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | This command is an alias for <a>glWindowPos2fv</a>.
glWindowPos2fvARB :: MonadIO m => Ptr GLfloat -> m ()

-- | This command is an alias for <a>glWindowPos2fv</a>.
glWindowPos2fvMESA :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2ivARB</a>.
--   This command is an alias for <a>glWindowPos2i</a>.
glWindowPos2iARB :: MonadIO m => GLint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2ivMESA</a>.
--   This command is an alias for <a>glWindowPos2i</a>.
glWindowPos2iMESA :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | This command is an alias for <a>glWindowPos2iv</a>.
glWindowPos2ivARB :: MonadIO m => Ptr GLint -> m ()

-- | This command is an alias for <a>glWindowPos2iv</a>.
glWindowPos2ivMESA :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2svARB</a>.
--   This command is an alias for <a>glWindowPos2s</a>.
glWindowPos2sARB :: MonadIO m => GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2svMESA</a>.
--   This command is an alias for <a>glWindowPos2s</a>.
glWindowPos2sMESA :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | This command is an alias for <a>glWindowPos2sv</a>.
glWindowPos2svARB :: MonadIO m => Ptr GLshort -> m ()

-- | This command is an alias for <a>glWindowPos2sv</a>.
glWindowPos2svMESA :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3dvARB</a>.
--   This command is an alias for <a>glWindowPos3d</a>.
glWindowPos3dARB :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3dvMESA</a>.
--   This command is an alias for <a>glWindowPos3d</a>.
glWindowPos3dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glWindowPos3dv</a>.
glWindowPos3dvARB :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glWindowPos3dv</a>.
glWindowPos3dvMESA :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3fvARB</a>.
--   This command is an alias for <a>glWindowPos3f</a>.
glWindowPos3fARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3fvMESA</a>.
--   This command is an alias for <a>glWindowPos3f</a>.
glWindowPos3fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | This command is an alias for <a>glWindowPos3fv</a>.
glWindowPos3fvARB :: MonadIO m => Ptr GLfloat -> m ()

-- | This command is an alias for <a>glWindowPos3fv</a>.
glWindowPos3fvMESA :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3ivARB</a>.
--   This command is an alias for <a>glWindowPos3i</a>.
glWindowPos3iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3ivMESA</a>.
--   This command is an alias for <a>glWindowPos3i</a>.
glWindowPos3iMESA :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | This command is an alias for <a>glWindowPos3iv</a>.
glWindowPos3ivARB :: MonadIO m => Ptr GLint -> m ()

-- | This command is an alias for <a>glWindowPos3iv</a>.
glWindowPos3ivMESA :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3svARB</a>.
--   This command is an alias for <a>glWindowPos3s</a>.
glWindowPos3sARB :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3svMESA</a>.
--   This command is an alias for <a>glWindowPos3s</a>.
glWindowPos3sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | This command is an alias for <a>glWindowPos3sv</a>.
glWindowPos3svARB :: MonadIO m => Ptr GLshort -> m ()

-- | This command is an alias for <a>glWindowPos3sv</a>.
glWindowPos3svMESA :: MonadIO m => Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glWindowPos4dvMESA</a>.
glWindowPos4dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glWindowPos4dvMESA :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos4fvMESA</a>.
glWindowPos4fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glWindowPos4fvMESA :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos4ivMESA</a>.
glWindowPos4iMESA :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glWindowPos4ivMESA :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos4svMESA</a>.
glWindowPos4sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
glWindowPos4svMESA :: MonadIO m => Ptr GLshort -> m ()
glWindowRectanglesEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLint -> m ()
glWriteMaskEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()


module Graphics.GL.Version10

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()


module Graphics.GL.Version11

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()


module Graphics.GL.Version12

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()


module Graphics.GL.Version13

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()


module Graphics.GL.Version14

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Version15

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Version20

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Version21

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.GREMEDY.FrameTerminator

-- | Is the <a>GREMEDY_frame_terminator</a> extension supported?
glGetGREMEDYFrameTerminator :: MonadIO m => m Bool

-- | Is the <a>GREMEDY_frame_terminator</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetGREMEDYFrameTerminator</a> in those cases
--   instead.
gl_GREMEDY_frame_terminator :: Bool
glFrameTerminatorGREMEDY :: MonadIO m => m ()


module Graphics.GL.GREMEDY.StringMarker

-- | Is the <a>GREMEDY_string_marker</a> extension supported?
glGetGREMEDYStringMarker :: MonadIO m => m Bool

-- | Is the <a>GREMEDY_string_marker</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetGREMEDYStringMarker</a> in those cases
--   instead.
gl_GREMEDY_string_marker :: Bool
glStringMarkerGREMEDY :: MonadIO m => GLsizei -> Ptr a -> m ()


-- | A convenience module, combining all raw modules containing GREMEDY
--   extensions.
module Graphics.GL.GREMEDY


module Graphics.GL.HP.ConvolutionBorderModes

-- | Is the <a>HP_convolution_border_modes</a> extension supported?
glGetHPConvolutionBorderModes :: MonadIO m => m Bool

-- | Is the <a>HP_convolution_border_modes</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetHPConvolutionBorderModes</a> in those
--   cases instead.
gl_HP_convolution_border_modes :: Bool


module Graphics.GL.HP.ImageTransform

-- | Is the <a>HP_image_transform</a> extension supported?
glGetHPImageTransform :: MonadIO m => m Bool

-- | Is the <a>HP_image_transform</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetHPImageTransform</a> in those cases instead.
gl_HP_image_transform :: Bool
glGetImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glImageTransformParameterfHP :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glImageTransformParameteriHP :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.HP.OcclusionTest

-- | Is the <a>HP_occlusion_test</a> extension supported?
glGetHPOcclusionTest :: MonadIO m => m Bool

-- | Is the <a>HP_occlusion_test</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetHPOcclusionTest</a> in those cases instead.
gl_HP_occlusion_test :: Bool


module Graphics.GL.HP.TextureLighting

-- | Is the <a>HP_texture_lighting</a> extension supported?
glGetHPTextureLighting :: MonadIO m => m Bool

-- | Is the <a>HP_texture_lighting</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetHPTextureLighting</a> in those cases
--   instead.
gl_HP_texture_lighting :: Bool


-- | A convenience module, combining all raw modules containing HP
--   extensions.
module Graphics.GL.HP


module Graphics.GL.IBM.CullVertex

-- | Is the <a>IBM_cull_vertex</a> extension supported?
glGetIBMCullVertex :: MonadIO m => m Bool

-- | Is the <a>IBM_cull_vertex</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetIBMCullVertex</a> in those cases instead.
gl_IBM_cull_vertex :: Bool


module Graphics.GL.IBM.MultimodeDrawArrays

-- | Is the <a>IBM_multimode_draw_arrays</a> extension supported?
glGetIBMMultimodeDrawArrays :: MonadIO m => m Bool

-- | Is the <a>IBM_multimode_draw_arrays</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetIBMMultimodeDrawArrays</a> in those cases
--   instead.
gl_IBM_multimode_draw_arrays :: Bool
glMultiModeDrawArraysIBM :: MonadIO m => Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()
glMultiModeDrawElementsIBM :: MonadIO m => Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> GLint -> m ()


module Graphics.GL.IBM.RasterposClip

-- | Is the <a>IBM_rasterpos_clip</a> extension supported?
glGetIBMRasterposClip :: MonadIO m => m Bool

-- | Is the <a>IBM_rasterpos_clip</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetIBMRasterposClip</a> in those cases instead.
gl_IBM_rasterpos_clip :: Bool


module Graphics.GL.IBM.StaticData

-- | Is the <a>IBM_static_data</a> extension supported?
glGetIBMStaticData :: MonadIO m => m Bool

-- | Is the <a>IBM_static_data</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetIBMStaticData</a> in those cases instead.
gl_IBM_static_data :: Bool
glFlushStaticDataIBM :: MonadIO m => GLenum -> m ()


module Graphics.GL.IBM.TextureMirroredRepeat

-- | Is the <a>IBM_texture_mirrored_repeat</a> extension supported?
glGetIBMTextureMirroredRepeat :: MonadIO m => m Bool

-- | Is the <a>IBM_texture_mirrored_repeat</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetIBMTextureMirroredRepeat</a> in those
--   cases instead.
gl_IBM_texture_mirrored_repeat :: Bool


module Graphics.GL.IBM.VertexArrayLists

-- | Is the <a>IBM_vertex_array_lists</a> extension supported?
glGetIBMVertexArrayLists :: MonadIO m => m Bool

-- | Is the <a>IBM_vertex_array_lists</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetIBMVertexArrayLists</a> in those cases
--   instead.
gl_IBM_vertex_array_lists :: Bool
glColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glEdgeFlagPointerListIBM :: MonadIO m => GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()
glFogCoordPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glIndexPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glNormalPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glSecondaryColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glTexCoordPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()
glVertexPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> m ()


-- | A convenience module, combining all raw modules containing IBM
--   extensions.
module Graphics.GL.IBM


module Graphics.GL.INGR.BlendFuncSeparate

-- | Is the <a>INGR_blend_func_separate</a> extension supported?
glGetINGRBlendFuncSeparate :: MonadIO m => m Bool

-- | Is the <a>INGR_blend_func_separate</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetINGRBlendFuncSeparate</a> in those cases
--   instead.
gl_INGR_blend_func_separate :: Bool

-- | This command is an alias for <a>glBlendFuncSeparate</a>.
glBlendFuncSeparateINGR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()


module Graphics.GL.INGR.ColorClamp

-- | Is the <a>INGR_color_clamp</a> extension supported?
glGetINGRColorClamp :: MonadIO m => m Bool

-- | Is the <a>INGR_color_clamp</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetINGRColorClamp</a> in those cases instead.
gl_INGR_color_clamp :: Bool


module Graphics.GL.INGR.InterlaceRead

-- | Is the <a>INGR_interlace_read</a> extension supported?
glGetINGRInterlaceRead :: MonadIO m => m Bool

-- | Is the <a>INGR_interlace_read</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetINGRInterlaceRead</a> in those cases
--   instead.
gl_INGR_interlace_read :: Bool


-- | A convenience module, combining all raw modules containing INGR
--   extensions.
module Graphics.GL.INGR


module Graphics.GL.INTEL.ConservativeRasterization

-- | Is the <a>INTEL_conservative_rasterization</a> extension supported?
glGetINTELConservativeRasterization :: MonadIO m => m Bool

-- | Is the <a>INTEL_conservative_rasterization</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetINTELConservativeRasterization</a> in those cases instead.
gl_INTEL_conservative_rasterization :: Bool


module Graphics.GL.INTEL.FramebufferCmaa

-- | Is the <a>INTEL_framebuffer_CMAA</a> extension supported?
glGetINTELFramebufferCmaa :: MonadIO m => m Bool

-- | Is the <a>INTEL_framebuffer_CMAA</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetINTELFramebufferCmaa</a> in those cases
--   instead.
gl_INTEL_framebuffer_CMAA :: Bool
glApplyFramebufferAttachmentCMAAINTEL :: MonadIO m => m ()


module Graphics.GL.INTEL.MapTexture

-- | Is the <a>INTEL_map_texture</a> extension supported?
glGetINTELMapTexture :: MonadIO m => m Bool

-- | Is the <a>INTEL_map_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetINTELMapTexture</a> in those cases instead.
gl_INTEL_map_texture :: Bool
glMapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> m (Ptr a)
glSyncTextureINTEL :: MonadIO m => GLuint -> m ()
glUnmapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> m ()


module Graphics.GL.INTEL.ParallelArrays

-- | Is the <a>INTEL_parallel_arrays</a> extension supported?
glGetINTELParallelArrays :: MonadIO m => m Bool

-- | Is the <a>INTEL_parallel_arrays</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetINTELParallelArrays</a> in those cases
--   instead.
gl_INTEL_parallel_arrays :: Bool
glColorPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr a) -> m ()
glNormalPointervINTEL :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()
glTexCoordPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr a) -> m ()
glVertexPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr a) -> m ()


module Graphics.GL.INTEL.PerformanceQuery

-- | Is the <a>INTEL_performance_query</a> extension supported?
glGetINTELPerformanceQuery :: MonadIO m => m Bool

-- | Is the <a>INTEL_performance_query</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetINTELPerformanceQuery</a> in those cases
--   instead.
gl_INTEL_performance_query :: Bool
glBeginPerfQueryINTEL :: MonadIO m => GLuint -> m ()
glCreatePerfQueryINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glDeletePerfQueryINTEL :: MonadIO m => GLuint -> m ()
glEndPerfQueryINTEL :: MonadIO m => GLuint -> m ()
glGetFirstPerfQueryIdINTEL :: MonadIO m => Ptr GLuint -> m ()
glGetNextPerfQueryIdINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glGetPerfCounterInfoINTEL :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()
glGetPerfQueryDataINTEL :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr a -> Ptr GLuint -> m ()
glGetPerfQueryIdByNameINTEL :: MonadIO m => Ptr GLchar -> Ptr GLuint -> m ()
glGetPerfQueryInfoINTEL :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()


-- | A convenience module, combining all raw modules containing INTEL
--   extensions.
module Graphics.GL.INTEL


module Graphics.GL.KHR.BlendEquationAdvanced

-- | Is the <a>KHR_blend_equation_advanced</a> extension supported?
glGetKHRBlendEquationAdvanced :: MonadIO m => m Bool

-- | Is the <a>KHR_blend_equation_advanced</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetKHRBlendEquationAdvanced</a> in those
--   cases instead.
gl_KHR_blend_equation_advanced :: Bool

-- | This command is an alias for <a>glBlendBarrier</a>.
glBlendBarrierKHR :: MonadIO m => m ()


module Graphics.GL.KHR.BlendEquationAdvancedCoherent

-- | Is the <a>KHR_blend_equation_advanced_coherent</a> extension
--   supported?
glGetKHRBlendEquationAdvancedCoherent :: MonadIO m => m Bool

-- | Is the <a>KHR_blend_equation_advanced_coherent</a> extension
--   supported? Note that in the presence of multiple contexts with
--   different capabilities, this might be wrong. Use
--   <a>glGetKHRBlendEquationAdvancedCoherent</a> in those cases instead.
gl_KHR_blend_equation_advanced_coherent :: Bool


module Graphics.GL.KHR.ContextFlushControl

-- | Is the <a>KHR_context_flush_control</a> extension supported?
glGetKHRContextFlushControl :: MonadIO m => m Bool

-- | Is the <a>KHR_context_flush_control</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetKHRContextFlushControl</a> in those cases
--   instead.
gl_KHR_context_flush_control :: Bool


module Graphics.GL.KHR.DebugCompatibility

-- | Is the <a>KHR_debug</a> extension supported?
glGetKHRDebug :: MonadIO m => m Bool

-- | Is the <a>KHR_debug</a> extension supported? Note that in the presence
--   of multiple contexts with different capabilities, this might be wrong.
--   Use <a>glGetKHRDebug</a> in those cases instead.
gl_KHR_debug :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()


module Graphics.GL.KHR.DebugCore

-- | Is the <a>KHR_debug</a> extension supported?
glGetKHRDebug :: MonadIO m => m Bool

-- | Is the <a>KHR_debug</a> extension supported? Note that in the presence
--   of multiple contexts with different capabilities, this might be wrong.
--   Use <a>glGetKHRDebug</a> in those cases instead.
gl_KHR_debug :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()


module Graphics.GL.KHR.NoError

-- | Is the <a>KHR_no_error</a> extension supported?
glGetKHRNoError :: MonadIO m => m Bool

-- | Is the <a>KHR_no_error</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetKHRNoError</a> in those cases instead.
gl_KHR_no_error :: Bool


module Graphics.GL.KHR.ParallelShaderCompile

-- | Is the <a>KHR_parallel_shader_compile</a> extension supported?
glGetKHRParallelShaderCompile :: MonadIO m => m Bool

-- | Is the <a>KHR_parallel_shader_compile</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetKHRParallelShaderCompile</a> in those
--   cases instead.
gl_KHR_parallel_shader_compile :: Bool
glMaxShaderCompilerThreadsKHR :: MonadIO m => GLuint -> m ()


module Graphics.GL.KHR.Robustness

-- | Is the <a>KHR_robustness</a> extension supported?
glGetKHRRobustness :: MonadIO m => m Bool

-- | Is the <a>KHR_robustness</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetKHRRobustness</a> in those cases instead.
gl_KHR_robustness :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetGraphicsResetStatus :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.KHR.TextureCompressionASTCHDR

-- | Is the <a>KHR_texture_compression_astc_hdr</a> extension supported?
glGetKHRTextureCompressionASTCHDR :: MonadIO m => m Bool

-- | Is the <a>KHR_texture_compression_astc_hdr</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetKHRTextureCompressionASTCHDR</a> in those cases instead.
gl_KHR_texture_compression_astc_hdr :: Bool


module Graphics.GL.KHR.TextureCompressionASTCLDR

-- | Is the <a>KHR_texture_compression_astc_ldr</a> extension supported?
glGetKHRTextureCompressionASTCLDR :: MonadIO m => m Bool

-- | Is the <a>KHR_texture_compression_astc_ldr</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetKHRTextureCompressionASTCLDR</a> in those cases instead.
gl_KHR_texture_compression_astc_ldr :: Bool


-- | A convenience module, combining all raw modules containing KHR
--   extensions.
module Graphics.GL.KHR


module Graphics.GL.MESA.PackInvert

-- | Is the <a>MESA_pack_invert</a> extension supported?
glGetMESAPackInvert :: MonadIO m => m Bool

-- | Is the <a>MESA_pack_invert</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetMESAPackInvert</a> in those cases instead.
gl_MESA_pack_invert :: Bool


module Graphics.GL.MESA.ProgramBinaryFormats

-- | Is the <a>MESA_program_binary_formats</a> extension supported?
glGetMESAProgramBinaryFormats :: MonadIO m => m Bool

-- | Is the <a>MESA_program_binary_formats</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetMESAProgramBinaryFormats</a> in those
--   cases instead.
gl_MESA_program_binary_formats :: Bool


module Graphics.GL.MESA.ResizeBuffers

-- | Is the <a>MESA_resize_buffers</a> extension supported?
glGetMESAResizeBuffers :: MonadIO m => m Bool

-- | Is the <a>MESA_resize_buffers</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetMESAResizeBuffers</a> in those cases
--   instead.
gl_MESA_resize_buffers :: Bool
glResizeBuffersMESA :: MonadIO m => m ()


module Graphics.GL.MESA.TileRasterOrder

-- | Is the <a>MESA_tile_raster_order</a> extension supported?
glGetMESATileRasterOrder :: MonadIO m => m Bool

-- | Is the <a>MESA_tile_raster_order</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetMESATileRasterOrder</a> in those cases
--   instead.
gl_MESA_tile_raster_order :: Bool


module Graphics.GL.MESA.WindowPos

-- | Is the <a>MESA_window_pos</a> extension supported?
glGetMESAWindowPos :: MonadIO m => m Bool

-- | Is the <a>MESA_window_pos</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetMESAWindowPos</a> in those cases instead.
gl_MESA_window_pos :: Bool

-- | The vector equivalent of this command is <a>glWindowPos2dvMESA</a>.
--   This command is an alias for <a>glWindowPos2d</a>.
glWindowPos2dMESA :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glWindowPos2dv</a>.
glWindowPos2dvMESA :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2fvMESA</a>.
--   This command is an alias for <a>glWindowPos2f</a>.
glWindowPos2fMESA :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glWindowPos2fv</a>.
glWindowPos2fvMESA :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2ivMESA</a>.
--   This command is an alias for <a>glWindowPos2i</a>.
glWindowPos2iMESA :: MonadIO m => GLint -> GLint -> m ()

-- | This command is an alias for <a>glWindowPos2iv</a>.
glWindowPos2ivMESA :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2svMESA</a>.
--   This command is an alias for <a>glWindowPos2s</a>.
glWindowPos2sMESA :: MonadIO m => GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glWindowPos2sv</a>.
glWindowPos2svMESA :: MonadIO m => Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3dvMESA</a>.
--   This command is an alias for <a>glWindowPos3d</a>.
glWindowPos3dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glWindowPos3dv</a>.
glWindowPos3dvMESA :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3fvMESA</a>.
--   This command is an alias for <a>glWindowPos3f</a>.
glWindowPos3fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glWindowPos3fv</a>.
glWindowPos3fvMESA :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3ivMESA</a>.
--   This command is an alias for <a>glWindowPos3i</a>.
glWindowPos3iMESA :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glWindowPos3iv</a>.
glWindowPos3ivMESA :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3svMESA</a>.
--   This command is an alias for <a>glWindowPos3s</a>.
glWindowPos3sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glWindowPos3sv</a>.
glWindowPos3svMESA :: MonadIO m => Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glWindowPos4dvMESA</a>.
glWindowPos4dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glWindowPos4dvMESA :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos4fvMESA</a>.
glWindowPos4fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glWindowPos4fvMESA :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos4ivMESA</a>.
glWindowPos4iMESA :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glWindowPos4ivMESA :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos4svMESA</a>.
glWindowPos4sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
glWindowPos4svMESA :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.MESA.YCbCrTexture

-- | Is the <a>MESA_ycbcr_texture</a> extension supported?
glGetMESAYCbCrTexture :: MonadIO m => m Bool

-- | Is the <a>MESA_ycbcr_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetMESAYCbCrTexture</a> in those cases instead.
gl_MESA_ycbcr_texture :: Bool


-- | A convenience module, combining all raw modules containing MESA
--   extensions.
module Graphics.GL.MESA


module Graphics.GL.MESAX.TextureStack

-- | Is the <a>MESAX_texture_stack</a> extension supported?
glGetMESAXTextureStack :: MonadIO m => m Bool

-- | Is the <a>MESAX_texture_stack</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetMESAXTextureStack</a> in those cases
--   instead.
gl_MESAX_texture_stack :: Bool


-- | A convenience module, combining all raw modules containing MESAX
--   extensions.
module Graphics.GL.MESAX


module Graphics.GL.NV.AlphaToCoverageDitherControl

-- | Is the <a>NV_alpha_to_coverage_dither_control</a> extension supported?
glGetNVAlphaToCoverageDitherControl :: MonadIO m => m Bool

-- | Is the <a>NV_alpha_to_coverage_dither_control</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetNVAlphaToCoverageDitherControl</a> in those cases instead.
gl_NV_alpha_to_coverage_dither_control :: Bool
glAlphaToCoverageDitherControlNV :: MonadIO m => GLenum -> m ()


module Graphics.GL.NV.BindlessMultiDrawIndirect

-- | Is the <a>NV_bindless_multi_draw_indirect</a> extension supported?
glGetNVBindlessMultiDrawIndirect :: MonadIO m => m Bool

-- | Is the <a>NV_bindless_multi_draw_indirect</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetNVBindlessMultiDrawIndirect</a> in those cases instead.
gl_NV_bindless_multi_draw_indirect :: Bool
glMultiDrawArraysIndirectBindlessNV :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> m ()
glMultiDrawElementsIndirectBindlessNV :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> m ()


module Graphics.GL.NV.BindlessMultiDrawIndirectCount

-- | Is the <a>NV_bindless_multi_draw_indirect_count</a> extension
--   supported?
glGetNVBindlessMultiDrawIndirectCount :: MonadIO m => m Bool

-- | Is the <a>NV_bindless_multi_draw_indirect_count</a> extension
--   supported? Note that in the presence of multiple contexts with
--   different capabilities, this might be wrong. Use
--   <a>glGetNVBindlessMultiDrawIndirectCount</a> in those cases instead.
gl_NV_bindless_multi_draw_indirect_count :: Bool
glMultiDrawArraysIndirectBindlessCountNV :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
glMultiDrawElementsIndirectBindlessCountNV :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()


module Graphics.GL.NV.BindlessTexture

-- | Is the <a>NV_bindless_texture</a> extension supported?
glGetNVBindlessTexture :: MonadIO m => m Bool

-- | Is the <a>NV_bindless_texture</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVBindlessTexture</a> in those cases
--   instead.
gl_NV_bindless_texture :: Bool
glGetImageHandleNV :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
glGetTextureHandleNV :: MonadIO m => GLuint -> m GLuint64
glGetTextureSamplerHandleNV :: MonadIO m => GLuint -> GLuint -> m GLuint64
glIsImageHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean
glIsTextureHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean
glMakeImageHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
glMakeImageHandleResidentNV :: MonadIO m => GLuint64 -> GLenum -> m ()
glMakeTextureHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
glMakeTextureHandleResidentNV :: MonadIO m => GLuint64 -> m ()
glProgramUniformHandleui64NV :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
glProgramUniformHandleui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniformHandleui64NV :: MonadIO m => GLint -> GLuint64 -> m ()
glUniformHandleui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()


module Graphics.GL.NV.BlendEquationAdvanced

-- | Is the <a>NV_blend_equation_advanced</a> extension supported?
glGetNVBlendEquationAdvanced :: MonadIO m => m Bool

-- | Is the <a>NV_blend_equation_advanced</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetNVBlendEquationAdvanced</a> in those
--   cases instead.
gl_NV_blend_equation_advanced :: Bool

-- | This command is an alias for <a>glBlendBarrier</a>.
glBlendBarrierNV :: MonadIO m => m ()
glBlendParameteriNV :: MonadIO m => GLenum -> GLint -> m ()


module Graphics.GL.NV.BlendEquationAdvancedCoherent

-- | Is the <a>NV_blend_equation_advanced_coherent</a> extension supported?
glGetNVBlendEquationAdvancedCoherent :: MonadIO m => m Bool

-- | Is the <a>NV_blend_equation_advanced_coherent</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetNVBlendEquationAdvancedCoherent</a> in those cases instead.
gl_NV_blend_equation_advanced_coherent :: Bool


module Graphics.GL.NV.BlendMinmaxFactor

-- | Is the <a>NV_blend_minmax_factor</a> extension supported?
glGetNVBlendMinmaxFactor :: MonadIO m => m Bool

-- | Is the <a>NV_blend_minmax_factor</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVBlendMinmaxFactor</a> in those cases
--   instead.
gl_NV_blend_minmax_factor :: Bool


module Graphics.GL.NV.ClipSpaceWScaling

-- | Is the <a>NV_clip_space_w_scaling</a> extension supported?
glGetNVClipSpaceWScaling :: MonadIO m => m Bool

-- | Is the <a>NV_clip_space_w_scaling</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVClipSpaceWScaling</a> in those cases
--   instead.
gl_NV_clip_space_w_scaling :: Bool
glViewportPositionWScaleNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()


module Graphics.GL.NV.CommandList

-- | Is the <a>NV_command_list</a> extension supported?
glGetNVCommandList :: MonadIO m => m Bool

-- | Is the <a>NV_command_list</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVCommandList</a> in those cases instead.
gl_NV_command_list :: Bool
glCallCommandListNV :: MonadIO m => GLuint -> m ()
glCommandListSegmentsNV :: MonadIO m => GLuint -> GLuint -> m ()
glCompileCommandListNV :: MonadIO m => GLuint -> m ()
glCreateCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDrawCommandsAddressNV :: MonadIO m => GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
glDrawCommandsNV :: MonadIO m => GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
glDrawCommandsStatesAddressNV :: MonadIO m => Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
glDrawCommandsStatesNV :: MonadIO m => GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
glGetCommandHeaderNV :: MonadIO m => GLenum -> GLuint -> m GLuint
glGetStageIndexNV :: MonadIO m => GLenum -> m GLushort
glIsCommandListNV :: MonadIO m => GLuint -> m GLboolean
glIsStateNV :: MonadIO m => GLuint -> m GLboolean
glListDrawCommandsStatesClientNV :: MonadIO m => GLuint -> GLuint -> Ptr (Ptr a) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
glStateCaptureNV :: MonadIO m => GLuint -> GLenum -> m ()


module Graphics.GL.NV.ComputeProgram5

-- | Is the <a>NV_compute_program5</a> extension supported?
glGetNVComputeProgram5 :: MonadIO m => m Bool

-- | Is the <a>NV_compute_program5</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVComputeProgram5</a> in those cases
--   instead.
gl_NV_compute_program5 :: Bool


module Graphics.GL.NV.ConditionalRender

-- | Is the <a>NV_conditional_render</a> extension supported?
glGetNVConditionalRender :: MonadIO m => m Bool

-- | Is the <a>NV_conditional_render</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVConditionalRender</a> in those cases
--   instead.
gl_NV_conditional_render :: Bool

-- | This command is an alias for <a>glBeginConditionalRender</a>.
glBeginConditionalRenderNV :: MonadIO m => GLuint -> GLenum -> m ()

-- | This command is an alias for <a>glEndConditionalRender</a>.
glEndConditionalRenderNV :: MonadIO m => m ()


module Graphics.GL.NV.ConservativeRaster

-- | Is the <a>NV_conservative_raster</a> extension supported?
glGetNVConservativeRaster :: MonadIO m => m Bool

-- | Is the <a>NV_conservative_raster</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVConservativeRaster</a> in those cases
--   instead.
gl_NV_conservative_raster :: Bool
glSubpixelPrecisionBiasNV :: MonadIO m => GLuint -> GLuint -> m ()


module Graphics.GL.NV.ConservativeRasterDilate

-- | Is the <a>NV_conservative_raster_dilate</a> extension supported?
glGetNVConservativeRasterDilate :: MonadIO m => m Bool

-- | Is the <a>NV_conservative_raster_dilate</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetNVConservativeRasterDilate</a> in
--   those cases instead.
gl_NV_conservative_raster_dilate :: Bool
glConservativeRasterParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()


module Graphics.GL.NV.ConservativeRasterPreSnap

-- | Is the <a>NV_conservative_raster_pre_snap</a> extension supported?
glGetNVConservativeRasterPreSnap :: MonadIO m => m Bool

-- | Is the <a>NV_conservative_raster_pre_snap</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetNVConservativeRasterPreSnap</a> in those cases instead.
gl_NV_conservative_raster_pre_snap :: Bool


module Graphics.GL.NV.ConservativeRasterPreSnapTriangles

-- | Is the <a>NV_conservative_raster_pre_snap_triangles</a> extension
--   supported?
glGetNVConservativeRasterPreSnapTriangles :: MonadIO m => m Bool

-- | Is the <a>NV_conservative_raster_pre_snap_triangles</a> extension
--   supported? Note that in the presence of multiple contexts with
--   different capabilities, this might be wrong. Use
--   <a>glGetNVConservativeRasterPreSnapTriangles</a> in those cases
--   instead.
gl_NV_conservative_raster_pre_snap_triangles :: Bool
glConservativeRasterParameteriNV :: MonadIO m => GLenum -> GLint -> m ()


module Graphics.GL.NV.CopyDepthToColor

-- | Is the <a>NV_copy_depth_to_color</a> extension supported?
glGetNVCopyDepthToColor :: MonadIO m => m Bool

-- | Is the <a>NV_copy_depth_to_color</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVCopyDepthToColor</a> in those cases
--   instead.
gl_NV_copy_depth_to_color :: Bool


module Graphics.GL.NV.CopyImage

-- | Is the <a>NV_copy_image</a> extension supported?
glGetNVCopyImage :: MonadIO m => m Bool

-- | Is the <a>NV_copy_image</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVCopyImage</a> in those cases instead.
gl_NV_copy_image :: Bool
glCopyImageSubDataNV :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()


module Graphics.GL.NV.DeepTexture3D

-- | Is the <a>NV_deep_texture3D</a> extension supported?
glGetNVDeepTexture3D :: MonadIO m => m Bool

-- | Is the <a>NV_deep_texture3D</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVDeepTexture3D</a> in those cases instead.
gl_NV_deep_texture3D :: Bool


module Graphics.GL.NV.DepthBufferFloat

-- | Is the <a>NV_depth_buffer_float</a> extension supported?
glGetNVDepthBufferFloat :: MonadIO m => m Bool

-- | Is the <a>NV_depth_buffer_float</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVDepthBufferFloat</a> in those cases
--   instead.
gl_NV_depth_buffer_float :: Bool
glClearDepthdNV :: MonadIO m => GLdouble -> m ()
glDepthBoundsdNV :: MonadIO m => GLdouble -> GLdouble -> m ()
glDepthRangedNV :: MonadIO m => GLdouble -> GLdouble -> m ()


module Graphics.GL.NV.DepthClamp

-- | Is the <a>NV_depth_clamp</a> extension supported?
glGetNVDepthClamp :: MonadIO m => m Bool

-- | Is the <a>NV_depth_clamp</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVDepthClamp</a> in those cases instead.
gl_NV_depth_clamp :: Bool


module Graphics.GL.NV.DrawTexture

-- | Is the <a>NV_draw_texture</a> extension supported?
glGetNVDrawTexture :: MonadIO m => m Bool

-- | Is the <a>NV_draw_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVDrawTexture</a> in those cases instead.
gl_NV_draw_texture :: Bool
glDrawTextureNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()


module Graphics.GL.NV.DrawVulkanImage

-- | Is the <a>NV_draw_vulkan_image</a> extension supported?
glGetNVDrawVulkanImage :: MonadIO m => m Bool

-- | Is the <a>NV_draw_vulkan_image</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVDrawVulkanImage</a> in those cases
--   instead.
gl_NV_draw_vulkan_image :: Bool
glDrawVkImageNV :: MonadIO m => GLuint64 -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glGetVkProcAddrNV :: MonadIO m => Ptr GLchar -> m GLVULKANPROCNV
glSignalVkFenceNV :: MonadIO m => GLuint64 -> m ()
glSignalVkSemaphoreNV :: MonadIO m => GLuint64 -> m ()
glWaitVkSemaphoreNV :: MonadIO m => GLuint64 -> m ()


module Graphics.GL.NV.Evaluators

-- | Is the <a>NV_evaluators</a> extension supported?
glGetNVEvaluators :: MonadIO m => m Bool

-- | Is the <a>NV_evaluators</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVEvaluators</a> in those cases instead.
gl_NV_evaluators :: Bool
glEvalMapsNV :: MonadIO m => GLenum -> GLenum -> m ()
glGetMapAttribParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetMapAttribParameterivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr a -> m ()
glGetMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr a -> m ()
glMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.NV.ExplicitMultisample

-- | Is the <a>NV_explicit_multisample</a> extension supported?
glGetNVExplicitMultisample :: MonadIO m => m Bool

-- | Is the <a>NV_explicit_multisample</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVExplicitMultisample</a> in those cases
--   instead.
gl_NV_explicit_multisample :: Bool

-- | This command is an alias for <a>glGetMultisamplefv</a>.
glGetMultisamplefvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glSampleMaskIndexedNV :: MonadIO m => GLuint -> GLbitfield -> m ()
glTexRenderbufferNV :: MonadIO m => GLenum -> GLuint -> m ()


module Graphics.GL.NV.Fence

-- | Is the <a>NV_fence</a> extension supported?
glGetNVFence :: MonadIO m => m Bool

-- | Is the <a>NV_fence</a> extension supported? Note that in the presence
--   of multiple contexts with different capabilities, this might be wrong.
--   Use <a>glGetNVFence</a> in those cases instead.
gl_NV_fence :: Bool
glDeleteFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glFinishFenceNV :: MonadIO m => GLuint -> m ()
glGenFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGetFenceivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glIsFenceNV :: MonadIO m => GLuint -> m GLboolean
glSetFenceNV :: MonadIO m => GLuint -> GLenum -> m ()
glTestFenceNV :: MonadIO m => GLuint -> m GLboolean


module Graphics.GL.NV.FillRectangle

-- | Is the <a>NV_fill_rectangle</a> extension supported?
glGetNVFillRectangle :: MonadIO m => m Bool

-- | Is the <a>NV_fill_rectangle</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVFillRectangle</a> in those cases instead.
gl_NV_fill_rectangle :: Bool


module Graphics.GL.NV.FloatBuffer

-- | Is the <a>NV_float_buffer</a> extension supported?
glGetNVFloatBuffer :: MonadIO m => m Bool

-- | Is the <a>NV_float_buffer</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVFloatBuffer</a> in those cases instead.
gl_NV_float_buffer :: Bool


module Graphics.GL.NV.FogDistance

-- | Is the <a>NV_fog_distance</a> extension supported?
glGetNVFogDistance :: MonadIO m => m Bool

-- | Is the <a>NV_fog_distance</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVFogDistance</a> in those cases instead.
gl_NV_fog_distance :: Bool


module Graphics.GL.NV.FragmentCoverageToColor

-- | Is the <a>NV_fragment_coverage_to_color</a> extension supported?
glGetNVFragmentCoverageToColor :: MonadIO m => m Bool

-- | Is the <a>NV_fragment_coverage_to_color</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetNVFragmentCoverageToColor</a> in
--   those cases instead.
gl_NV_fragment_coverage_to_color :: Bool
glFragmentCoverageColorNV :: MonadIO m => GLuint -> m ()


module Graphics.GL.NV.FragmentProgram

-- | Is the <a>NV_fragment_program</a> extension supported?
glGetNVFragmentProgram :: MonadIO m => m Bool

-- | Is the <a>NV_fragment_program</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVFragmentProgram</a> in those cases
--   instead.
gl_NV_fragment_program :: Bool
glGetProgramNamedParameterdvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()
glGetProgramNamedParameterfvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramNamedParameter4dvNV</a>.
glProgramNamedParameter4dNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramNamedParameter4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramNamedParameter4fvNV</a>.
glProgramNamedParameter4fNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramNamedParameter4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()


module Graphics.GL.NV.FragmentProgram2

-- | Is the <a>NV_fragment_program2</a> extension supported?
glGetNVFragmentProgram2 :: MonadIO m => m Bool

-- | Is the <a>NV_fragment_program2</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVFragmentProgram2</a> in those cases
--   instead.
gl_NV_fragment_program2 :: Bool


module Graphics.GL.NV.FramebufferMixedSamples

-- | Is the <a>NV_framebuffer_mixed_samples</a> extension supported?
glGetNVFramebufferMixedSamples :: MonadIO m => m Bool

-- | Is the <a>NV_framebuffer_mixed_samples</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetNVFramebufferMixedSamples</a> in
--   those cases instead.
gl_NV_framebuffer_mixed_samples :: Bool
glCoverageModulationNV :: MonadIO m => GLenum -> m ()
glCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
glGetCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()


module Graphics.GL.NV.FramebufferMultisampleCoverage

-- | Is the <a>NV_framebuffer_multisample_coverage</a> extension supported?
glGetNVFramebufferMultisampleCoverage :: MonadIO m => m Bool

-- | Is the <a>NV_framebuffer_multisample_coverage</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetNVFramebufferMultisampleCoverage</a> in those cases instead.
gl_NV_framebuffer_multisample_coverage :: Bool
glRenderbufferStorageMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()


module Graphics.GL.NV.GPUMulticast

-- | Is the <a>NV_gpu_multicast</a> extension supported?
glGetNVGPUMulticast :: MonadIO m => m Bool

-- | Is the <a>NV_gpu_multicast</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVGPUMulticast</a> in those cases instead.
gl_NV_gpu_multicast :: Bool
glMulticastBarrierNV :: MonadIO m => m ()
glMulticastBlitFramebufferNV :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
glMulticastBufferSubDataNV :: MonadIO m => GLbitfield -> GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()
glMulticastCopyBufferSubDataNV :: MonadIO m => GLuint -> GLbitfield -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
glMulticastCopyImageSubDataNV :: MonadIO m => GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
glMulticastFramebufferSampleLocationsfvNV :: MonadIO m => GLuint -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glMulticastGetQueryObjecti64vNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
glMulticastGetQueryObjectivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glMulticastGetQueryObjectui64vNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLuint64 -> m ()
glMulticastGetQueryObjectuivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLuint -> m ()
glMulticastWaitSyncNV :: MonadIO m => GLuint -> GLbitfield -> m ()
glRenderGpuMaskNV :: MonadIO m => GLbitfield -> m ()


module Graphics.GL.NV.GPUProgram4

-- | Is the <a>NV_gpu_program4</a> extension supported?
glGetNVGPUProgram4 :: MonadIO m => m Bool

-- | Is the <a>NV_gpu_program4</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVGPUProgram4</a> in those cases instead.
gl_NV_gpu_program4 :: Bool
glGetProgramEnvParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetProgramEnvParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glGetProgramLocalParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetProgramLocalParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameterI4ivNV</a>.
glProgramEnvParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramEnvParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameterI4uivNV</a>.
glProgramEnvParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glProgramEnvParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glProgramEnvParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
glProgramEnvParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameterI4ivNV</a>.
glProgramLocalParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramLocalParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameterI4uivNV</a>.
glProgramLocalParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glProgramLocalParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glProgramLocalParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
glProgramLocalParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()


module Graphics.GL.NV.GPUProgram5

-- | Is the <a>NV_gpu_program5</a> extension supported?
glGetNVGPUProgram5 :: MonadIO m => m Bool

-- | Is the <a>NV_gpu_program5</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVGPUProgram5</a> in those cases instead.
gl_NV_gpu_program5 :: Bool
glGetProgramSubroutineParameteruivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glProgramSubroutineParametersuivNV :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()


module Graphics.GL.NV.GPUShader5

-- | Is the <a>NV_gpu_shader5</a> extension supported?
glGetNVGPUShader5 :: MonadIO m => m Bool

-- | Is the <a>NV_gpu_shader5</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVGPUShader5</a> in those cases instead.
gl_NV_gpu_shader5 :: Bool
glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()


module Graphics.GL.NV.GeometryProgram4

-- | Is the <a>NV_geometry_program4</a> extension supported?
glGetNVGeometryProgram4 :: MonadIO m => m Bool

-- | Is the <a>NV_geometry_program4</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVGeometryProgram4</a> in those cases
--   instead.
gl_NV_geometry_program4 :: Bool

-- | This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTextureFaceARB</a>.
glFramebufferTextureFaceEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()

-- | This command is an alias for <a>glFramebufferTextureLayer</a>.
glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glProgramVertexLimitNV :: MonadIO m => GLenum -> GLint -> m ()


module Graphics.GL.NV.HalfFloat

-- | Is the <a>NV_half_float</a> extension supported?
glGetNVHalfFloat :: MonadIO m => m Bool

-- | Is the <a>NV_half_float</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVHalfFloat</a> in those cases instead.
gl_NV_half_float :: Bool

-- | The vector equivalent of this command is <a>glColor3hvNV</a>.
glColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glColor4hvNV</a>.
glColor4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glColor4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glFogCoordhvNV</a>.
glFogCoordhNV :: MonadIO m => GLhalfNV -> m ()
glFogCoordhvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1hvNV</a>.
glMultiTexCoord1hNV :: MonadIO m => GLenum -> GLhalfNV -> m ()
glMultiTexCoord1hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2hvNV</a>.
glMultiTexCoord2hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord2hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3hvNV</a>.
glMultiTexCoord3hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord3hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord4hvNV</a>.
glMultiTexCoord4hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glMultiTexCoord4hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glNormal3hvNV</a>.
glNormal3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glNormal3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glSecondaryColor3hvNV</a>.
glSecondaryColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glSecondaryColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glTexCoord1hvNV</a>.
glTexCoord1hNV :: MonadIO m => GLhalfNV -> m ()
glTexCoord1hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glTexCoord2hvNV</a>.
glTexCoord2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
glTexCoord2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glTexCoord3hvNV</a>.
glTexCoord3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glTexCoord3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glTexCoord4hvNV</a>.
glTexCoord4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glTexCoord4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glVertex2hvNV</a>.
glVertex2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
glVertex2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glVertex3hvNV</a>.
glVertex3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertex3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glVertex4hvNV</a>.
glVertex4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertex4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1hvNV</a>.
glVertexAttrib1hNV :: MonadIO m => GLuint -> GLhalfNV -> m ()
glVertexAttrib1hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <tt>glVertexAttrib2hvNV</tt>.
glVertexAttrib2hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib2hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3hvNV</a>.
glVertexAttrib3hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib3hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4hvNV</a>.
glVertexAttrib4hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
glVertexAttrib4hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
glVertexAttribs1hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs2hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs3hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
glVertexAttribs4hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()

-- | The vector equivalent of this command is <a>glVertexWeighthvNV</a>.
glVertexWeighthNV :: MonadIO m => GLhalfNV -> m ()
glVertexWeighthvNV :: MonadIO m => Ptr GLhalfNV -> m ()


module Graphics.GL.NV.InternalformatSampleQuery

-- | Is the <a>NV_internalformat_sample_query</a> extension supported?
glGetNVInternalformatSampleQuery :: MonadIO m => m Bool

-- | Is the <a>NV_internalformat_sample_query</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetNVInternalformatSampleQuery</a> in
--   those cases instead.
gl_NV_internalformat_sample_query :: Bool
glGetInternalformatSampleivNV :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> m ()


module Graphics.GL.NV.LightMaxExponent

-- | Is the <a>NV_light_max_exponent</a> extension supported?
glGetNVLightMaxExponent :: MonadIO m => m Bool

-- | Is the <a>NV_light_max_exponent</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVLightMaxExponent</a> in those cases
--   instead.
gl_NV_light_max_exponent :: Bool


module Graphics.GL.NV.MultisampleCoverage

-- | Is the <a>NV_multisample_coverage</a> extension supported?
glGetNVMultisampleCoverage :: MonadIO m => m Bool

-- | Is the <a>NV_multisample_coverage</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVMultisampleCoverage</a> in those cases
--   instead.
gl_NV_multisample_coverage :: Bool


module Graphics.GL.NV.MultisampleFilterHint

-- | Is the <a>NV_multisample_filter_hint</a> extension supported?
glGetNVMultisampleFilterHint :: MonadIO m => m Bool

-- | Is the <a>NV_multisample_filter_hint</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetNVMultisampleFilterHint</a> in those
--   cases instead.
gl_NV_multisample_filter_hint :: Bool


module Graphics.GL.NV.OcclusionQuery

-- | Is the <a>NV_occlusion_query</a> extension supported?
glGetNVOcclusionQuery :: MonadIO m => m Bool

-- | Is the <a>NV_occlusion_query</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVOcclusionQuery</a> in those cases instead.
gl_NV_occlusion_query :: Bool
glBeginOcclusionQueryNV :: MonadIO m => GLuint -> m ()
glDeleteOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glEndOcclusionQueryNV :: MonadIO m => m ()
glGenOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGetOcclusionQueryivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetOcclusionQueryuivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glIsOcclusionQueryNV :: MonadIO m => GLuint -> m GLboolean


module Graphics.GL.NV.PackedDepthStencil

-- | Is the <a>NV_packed_depth_stencil</a> extension supported?
glGetNVPackedDepthStencil :: MonadIO m => m Bool

-- | Is the <a>NV_packed_depth_stencil</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVPackedDepthStencil</a> in those cases
--   instead.
gl_NV_packed_depth_stencil :: Bool


module Graphics.GL.NV.ParameterBufferObject

-- | Is the <a>NV_parameter_buffer_object</a> extension supported?
glGetNVParameterBufferObject :: MonadIO m => m Bool

-- | Is the <a>NV_parameter_buffer_object</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetNVParameterBufferObject</a> in those
--   cases instead.
gl_NV_parameter_buffer_object :: Bool
glProgramBufferParametersIivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> m ()
glProgramBufferParametersIuivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> m ()
glProgramBufferParametersfvNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()


module Graphics.GL.NV.PathRenderingCompatibility

-- | Is the <a>NV_path_rendering</a> extension supported?
glGetNVPathRendering :: MonadIO m => m Bool

-- | Is the <a>NV_path_rendering</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVPathRendering</a> in those cases instead.
gl_NV_path_rendering :: Bool
glCopyPathNV :: MonadIO m => GLuint -> GLuint -> m ()
glCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> m ()
glCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glCoverStrokePathNV :: MonadIO m => GLuint -> GLenum -> m ()
glDeletePathsNV :: MonadIO m => GLuint -> GLsizei -> m ()
glGenPathsNV :: MonadIO m => GLsizei -> m GLuint
glGetPathColorGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetPathColorGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetPathCommandsNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glGetPathCoordsNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glGetPathDashArrayNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glGetPathLengthNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> m GLfloat
glGetPathMetricRangeNV :: MonadIO m => GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
glGetPathMetricsNV :: MonadIO m => GLbitfield -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glGetPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetPathSpacingNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()
glGetPathTexGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetPathTexGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetProgramResourcefvNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()
glInterpolatePathsNV :: MonadIO m => GLuint -> GLuint -> GLuint -> GLfloat -> m ()
glIsPathNV :: MonadIO m => GLuint -> m GLboolean
glIsPointInFillPathNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean
glIsPointInStrokePathNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m GLboolean
glMatrixFrustumEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixLoad3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoad3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoadIdentityEXT :: MonadIO m => GLenum -> m ()
glMatrixLoadTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoadTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixLoadTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoaddEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixLoadfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMult3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMult3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixMultTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultdEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixMultfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixOrthoEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixPopEXT :: MonadIO m => GLenum -> m ()
glMatrixPushEXT :: MonadIO m => GLenum -> m ()
glMatrixRotatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixRotatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glMatrixScaledEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixScalefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glMatrixTranslatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixTranslatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glPathColorGenNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glPathCommandsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> m ()
glPathCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLenum -> Ptr a -> m ()
glPathCoverDepthFuncNV :: MonadIO m => GLenum -> m ()
glPathDashArrayNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glPathFogGenNV :: MonadIO m => GLenum -> m ()
glPathGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
glPathGlyphIndexRangeNV :: MonadIO m => GLenum -> Ptr a -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum
glPathGlyphRangeNV :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()
glPathGlyphsNV :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLbitfield -> GLsizei -> GLenum -> Ptr b -> GLenum -> GLuint -> GLfloat -> m ()
glPathMemoryGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> Ptr a -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
glPathParameterfNV :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
glPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glPathParameteriNV :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glPathStencilDepthOffsetNV :: MonadIO m => GLfloat -> GLfloat -> m ()
glPathStencilFuncNV :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
glPathStringNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr a -> m ()
glPathSubCommandsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> m ()
glPathSubCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr a -> m ()
glPathTexGenNV :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr GLfloat -> m ()
glPointAlongPathNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean
glProgramPathFragmentInputGenNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()
glStencilFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glStencilFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
glStencilStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glStencilStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
glStencilThenCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glStencilThenCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> m ()
glStencilThenCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glStencilThenCoverStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> GLenum -> m ()
glTransformPathNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glWeightPathsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()


module Graphics.GL.NV.PathRenderingCore

-- | Is the <a>NV_path_rendering</a> extension supported?
glGetNVPathRendering :: MonadIO m => m Bool

-- | Is the <a>NV_path_rendering</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVPathRendering</a> in those cases instead.
gl_NV_path_rendering :: Bool
glCopyPathNV :: MonadIO m => GLuint -> GLuint -> m ()
glCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> m ()
glCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glCoverStrokePathNV :: MonadIO m => GLuint -> GLenum -> m ()
glDeletePathsNV :: MonadIO m => GLuint -> GLsizei -> m ()
glGenPathsNV :: MonadIO m => GLsizei -> m GLuint
glGetPathCommandsNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glGetPathCoordsNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glGetPathDashArrayNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glGetPathLengthNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> m GLfloat
glGetPathMetricRangeNV :: MonadIO m => GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
glGetPathMetricsNV :: MonadIO m => GLbitfield -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glGetPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetPathSpacingNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()
glGetProgramResourcefvNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()
glInterpolatePathsNV :: MonadIO m => GLuint -> GLuint -> GLuint -> GLfloat -> m ()
glIsPathNV :: MonadIO m => GLuint -> m GLboolean
glIsPointInFillPathNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean
glIsPointInStrokePathNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m GLboolean
glMatrixFrustumEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixLoad3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoad3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoadIdentityEXT :: MonadIO m => GLenum -> m ()
glMatrixLoadTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoadTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixLoadTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoaddEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixLoadfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMult3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMult3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixMultTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultdEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixMultfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixOrthoEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixPopEXT :: MonadIO m => GLenum -> m ()
glMatrixPushEXT :: MonadIO m => GLenum -> m ()
glMatrixRotatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixRotatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glMatrixScaledEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixScalefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glMatrixTranslatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixTranslatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glPathCommandsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> m ()
glPathCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLenum -> Ptr a -> m ()
glPathCoverDepthFuncNV :: MonadIO m => GLenum -> m ()
glPathDashArrayNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glPathGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
glPathGlyphIndexRangeNV :: MonadIO m => GLenum -> Ptr a -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum
glPathGlyphRangeNV :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()
glPathGlyphsNV :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLbitfield -> GLsizei -> GLenum -> Ptr b -> GLenum -> GLuint -> GLfloat -> m ()
glPathMemoryGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> Ptr a -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
glPathParameterfNV :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
glPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glPathParameteriNV :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glPathStencilDepthOffsetNV :: MonadIO m => GLfloat -> GLfloat -> m ()
glPathStencilFuncNV :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
glPathStringNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr a -> m ()
glPathSubCommandsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> m ()
glPathSubCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr a -> m ()
glPointAlongPathNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean
glProgramPathFragmentInputGenNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()
glStencilFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glStencilFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
glStencilStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glStencilStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
glStencilThenCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glStencilThenCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> m ()
glStencilThenCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glStencilThenCoverStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> GLenum -> m ()
glTransformPathNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glWeightPathsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()


module Graphics.GL.NV.PathRenderingSharedEdge

-- | Is the <a>NV_path_rendering_shared_edge</a> extension supported?
glGetNVPathRenderingSharedEdge :: MonadIO m => m Bool

-- | Is the <a>NV_path_rendering_shared_edge</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetNVPathRenderingSharedEdge</a> in
--   those cases instead.
gl_NV_path_rendering_shared_edge :: Bool


module Graphics.GL.NV.PixelDataRange

-- | Is the <a>NV_pixel_data_range</a> extension supported?
glGetNVPixelDataRange :: MonadIO m => m Bool

-- | Is the <a>NV_pixel_data_range</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVPixelDataRange</a> in those cases
--   instead.
gl_NV_pixel_data_range :: Bool
glFlushPixelDataRangeNV :: MonadIO m => GLenum -> m ()
glPixelDataRangeNV :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.NV.PointSprite

-- | Is the <a>NV_point_sprite</a> extension supported?
glGetNVPointSprite :: MonadIO m => m Bool

-- | Is the <a>NV_point_sprite</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVPointSprite</a> in those cases instead.
gl_NV_point_sprite :: Bool

-- | This command is an alias for <a>glPointParameteri</a>.
glPointParameteriNV :: MonadIO m => GLenum -> GLint -> m ()

-- | This command is an alias for <a>glPointParameteriv</a>.
glPointParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()


module Graphics.GL.NV.PresentVideo

-- | Is the <a>NV_present_video</a> extension supported?
glGetNVPresentVideo :: MonadIO m => m Bool

-- | Is the <a>NV_present_video</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVPresentVideo</a> in those cases instead.
gl_NV_present_video :: Bool
glGetVideoi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
glGetVideoivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVideoui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
glGetVideouivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glPresentFrameDualFillNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
glPresentFrameKeyedNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> m ()


module Graphics.GL.NV.PrimitiveRestart

-- | Is the <a>NV_primitive_restart</a> extension supported?
glGetNVPrimitiveRestart :: MonadIO m => m Bool

-- | Is the <a>NV_primitive_restart</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVPrimitiveRestart</a> in those cases
--   instead.
gl_NV_primitive_restart :: Bool
glPrimitiveRestartIndexNV :: MonadIO m => GLuint -> m ()
glPrimitiveRestartNV :: MonadIO m => m ()


module Graphics.GL.NV.QueryResource

-- | Is the <a>NV_query_resource</a> extension supported?
glGetNVQueryResource :: MonadIO m => m Bool

-- | Is the <a>NV_query_resource</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVQueryResource</a> in those cases instead.
gl_NV_query_resource :: Bool
glQueryResourceNV :: MonadIO m => GLenum -> GLint -> GLuint -> Ptr GLint -> m GLint


module Graphics.GL.NV.QueryResourceTag

-- | Is the <a>NV_query_resource_tag</a> extension supported?
glGetNVQueryResourceTag :: MonadIO m => m Bool

-- | Is the <a>NV_query_resource_tag</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVQueryResourceTag</a> in those cases
--   instead.
gl_NV_query_resource_tag :: Bool
glDeleteQueryResourceTagNV :: MonadIO m => GLsizei -> Ptr GLint -> m ()
glGenQueryResourceTagNV :: MonadIO m => GLsizei -> Ptr GLint -> m ()
glQueryResourceTagNV :: MonadIO m => GLint -> Ptr GLchar -> m ()


module Graphics.GL.NV.RegisterCombiners

-- | Is the <a>NV_register_combiners</a> extension supported?
glGetNVRegisterCombiners :: MonadIO m => m Bool

-- | Is the <a>NV_register_combiners</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVRegisterCombiners</a> in those cases
--   instead.
gl_NV_register_combiners :: Bool
glCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glCombinerOutputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()
glCombinerParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()
glCombinerParameterfvNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glCombinerParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
glCombinerParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
glFinalCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
glGetCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetCombinerOutputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCombinerOutputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetFinalCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFinalCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.NV.RegisterCombiners2

-- | Is the <a>NV_register_combiners2</a> extension supported?
glGetNVRegisterCombiners2 :: MonadIO m => m Bool

-- | Is the <a>NV_register_combiners2</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVRegisterCombiners2</a> in those cases
--   instead.
gl_NV_register_combiners2 :: Bool
glCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()


module Graphics.GL.NV.RobustnessVideoMemoryPurge

-- | Is the <a>NV_robustness_video_memory_purge</a> extension supported?
glGetNVRobustnessVideoMemoryPurge :: MonadIO m => m Bool

-- | Is the <a>NV_robustness_video_memory_purge</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetNVRobustnessVideoMemoryPurge</a> in those cases instead.
gl_NV_robustness_video_memory_purge :: Bool


module Graphics.GL.NV.SampleLocations

-- | Is the <a>NV_sample_locations</a> extension supported?
glGetNVSampleLocations :: MonadIO m => m Bool

-- | Is the <a>NV_sample_locations</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVSampleLocations</a> in those cases
--   instead.
gl_NV_sample_locations :: Bool
glFramebufferSampleLocationsfvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glNamedFramebufferSampleLocationsfvNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glResolveDepthValuesNV :: MonadIO m => m ()


module Graphics.GL.NV.ShaderBufferLoad

-- | Is the <a>NV_shader_buffer_load</a> extension supported?
glGetNVShaderBufferLoad :: MonadIO m => m Bool

-- | Is the <a>NV_shader_buffer_load</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVShaderBufferLoad</a> in those cases
--   instead.
gl_NV_shader_buffer_load :: Bool
glGetBufferParameterui64vNV :: MonadIO m => GLenum -> GLenum -> Ptr GLuint64EXT -> m ()
glGetIntegerui64vNV :: MonadIO m => GLenum -> Ptr GLuint64EXT -> m ()
glGetNamedBufferParameterui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
glIsBufferResidentNV :: MonadIO m => GLenum -> m GLboolean
glIsNamedBufferResidentNV :: MonadIO m => GLuint -> m GLboolean
glMakeBufferNonResidentNV :: MonadIO m => GLenum -> m ()
glMakeBufferResidentNV :: MonadIO m => GLenum -> GLenum -> m ()
glMakeNamedBufferNonResidentNV :: MonadIO m => GLuint -> m ()
glMakeNamedBufferResidentNV :: MonadIO m => GLuint -> GLenum -> m ()
glProgramUniformui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
glProgramUniformui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniformui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
glUniformui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()


module Graphics.GL.NV.ShaderBufferStore

-- | Is the <a>NV_shader_buffer_store</a> extension supported?
glGetNVShaderBufferStore :: MonadIO m => m Bool

-- | Is the <a>NV_shader_buffer_store</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVShaderBufferStore</a> in those cases
--   instead.
gl_NV_shader_buffer_store :: Bool


module Graphics.GL.NV.ShaderThreadGroup

-- | Is the <a>NV_shader_thread_group</a> extension supported?
glGetNVShaderThreadGroup :: MonadIO m => m Bool

-- | Is the <a>NV_shader_thread_group</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVShaderThreadGroup</a> in those cases
--   instead.
gl_NV_shader_thread_group :: Bool


module Graphics.GL.NV.TessellationProgram5

-- | Is the <a>NV_tessellation_program5</a> extension supported?
glGetNVTessellationProgram5 :: MonadIO m => m Bool

-- | Is the <a>NV_tessellation_program5</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVTessellationProgram5</a> in those cases
--   instead.
gl_NV_tessellation_program5 :: Bool


module Graphics.GL.NV.TexgenEmboss

-- | Is the <a>NV_texgen_emboss</a> extension supported?
glGetNVTexgenEmboss :: MonadIO m => m Bool

-- | Is the <a>NV_texgen_emboss</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVTexgenEmboss</a> in those cases instead.
gl_NV_texgen_emboss :: Bool


module Graphics.GL.NV.TexgenReflection

-- | Is the <a>NV_texgen_reflection</a> extension supported?
glGetNVTexgenReflection :: MonadIO m => m Bool

-- | Is the <a>NV_texgen_reflection</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVTexgenReflection</a> in those cases
--   instead.
gl_NV_texgen_reflection :: Bool


module Graphics.GL.NV.TextureBarrier

-- | Is the <a>NV_texture_barrier</a> extension supported?
glGetNVTextureBarrier :: MonadIO m => m Bool

-- | Is the <a>NV_texture_barrier</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVTextureBarrier</a> in those cases instead.
gl_NV_texture_barrier :: Bool
glTextureBarrierNV :: MonadIO m => m ()


module Graphics.GL.NV.TextureEnvCombine4

-- | Is the <a>NV_texture_env_combine4</a> extension supported?
glGetNVTextureEnvCombine4 :: MonadIO m => m Bool

-- | Is the <a>NV_texture_env_combine4</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVTextureEnvCombine4</a> in those cases
--   instead.
gl_NV_texture_env_combine4 :: Bool


module Graphics.GL.NV.TextureExpandNormal

-- | Is the <a>NV_texture_expand_normal</a> extension supported?
glGetNVTextureExpandNormal :: MonadIO m => m Bool

-- | Is the <a>NV_texture_expand_normal</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVTextureExpandNormal</a> in those cases
--   instead.
gl_NV_texture_expand_normal :: Bool


module Graphics.GL.NV.TextureMultisample

-- | Is the <a>NV_texture_multisample</a> extension supported?
glGetNVTextureMultisample :: MonadIO m => m Bool

-- | Is the <a>NV_texture_multisample</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVTextureMultisample</a> in those cases
--   instead.
gl_NV_texture_multisample :: Bool
glTexImage2DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage3DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage2DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage2DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage3DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage3DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()


module Graphics.GL.NV.TextureRectangle

-- | Is the <a>NV_texture_rectangle</a> extension supported?
glGetNVTextureRectangle :: MonadIO m => m Bool

-- | Is the <a>NV_texture_rectangle</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVTextureRectangle</a> in those cases
--   instead.
gl_NV_texture_rectangle :: Bool


module Graphics.GL.NV.TextureShader

-- | Is the <a>NV_texture_shader</a> extension supported?
glGetNVTextureShader :: MonadIO m => m Bool

-- | Is the <a>NV_texture_shader</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVTextureShader</a> in those cases instead.
gl_NV_texture_shader :: Bool


module Graphics.GL.NV.TextureShader2

-- | Is the <a>NV_texture_shader2</a> extension supported?
glGetNVTextureShader2 :: MonadIO m => m Bool

-- | Is the <a>NV_texture_shader2</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVTextureShader2</a> in those cases instead.
gl_NV_texture_shader2 :: Bool


module Graphics.GL.NV.TextureShader3

-- | Is the <a>NV_texture_shader3</a> extension supported?
glGetNVTextureShader3 :: MonadIO m => m Bool

-- | Is the <a>NV_texture_shader3</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVTextureShader3</a> in those cases instead.
gl_NV_texture_shader3 :: Bool


module Graphics.GL.NV.TransformFeedback

-- | Is the <a>NV_transform_feedback</a> extension supported?
glGetNVTransformFeedback :: MonadIO m => m Bool

-- | Is the <a>NV_transform_feedback</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVTransformFeedback</a> in those cases
--   instead.
gl_NV_transform_feedback :: Bool
glActiveVaryingNV :: MonadIO m => GLuint -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glBeginTransformFeedback</a>.
glBeginTransformFeedbackNV :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glBindBufferBase</a>.
glBindBufferBaseNV :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glBindBufferOffsetEXT</a>.
glBindBufferOffsetNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()

-- | This command is an alias for <a>glBindBufferRange</a>.
glBindBufferRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | This command is an alias for <a>glEndTransformFeedback</a>.
glEndTransformFeedbackNV :: MonadIO m => m ()
glGetActiveVaryingNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
glGetTransformFeedbackVaryingNV :: MonadIO m => GLuint -> GLuint -> Ptr GLint -> m ()
glGetVaryingLocationNV :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
glTransformFeedbackAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLenum -> m ()
glTransformFeedbackStreamAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()
glTransformFeedbackVaryingsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()


module Graphics.GL.NV.TransformFeedback2

-- | Is the <a>NV_transform_feedback2</a> extension supported?
glGetNVTransformFeedback2 :: MonadIO m => m Bool

-- | Is the <a>NV_transform_feedback2</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVTransformFeedback2</a> in those cases
--   instead.
gl_NV_transform_feedback2 :: Bool
glBindTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glDeleteTransformFeedbacks</a>.
glDeleteTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDrawTransformFeedback</a>.
glDrawTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glGenTransformFeedbacks</a>.
glGenTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glIsTransformFeedback</a>.
glIsTransformFeedbackNV :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glPauseTransformFeedback</a>.
glPauseTransformFeedbackNV :: MonadIO m => m ()

-- | This command is an alias for <a>glResumeTransformFeedback</a>.
glResumeTransformFeedbackNV :: MonadIO m => m ()


module Graphics.GL.NV.UniformBufferUnifiedMemory

-- | Is the <a>NV_uniform_buffer_unified_memory</a> extension supported?
glGetNVUniformBufferUnifiedMemory :: MonadIO m => m Bool

-- | Is the <a>NV_uniform_buffer_unified_memory</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetNVUniformBufferUnifiedMemory</a> in those cases instead.
gl_NV_uniform_buffer_unified_memory :: Bool


module Graphics.GL.NV.VDPAUInterop

-- | Is the <a>NV_vdpau_interop</a> extension supported?
glGetNVVDPAUInterop :: MonadIO m => m Bool

-- | Is the <a>NV_vdpau_interop</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVVDPAUInterop</a> in those cases instead.
gl_NV_vdpau_interop :: Bool
glVDPAUFiniNV :: MonadIO m => m ()
glVDPAUGetSurfaceivNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
glVDPAUInitNV :: MonadIO m => Ptr a -> Ptr b -> m ()
glVDPAUIsSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m GLboolean
glVDPAUMapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
glVDPAURegisterOutputSurfaceNV :: MonadIO m => Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
glVDPAURegisterVideoSurfaceNV :: MonadIO m => Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
glVDPAUSurfaceAccessNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> m ()
glVDPAUUnmapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
glVDPAUUnregisterSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m ()


module Graphics.GL.NV.VertexArrayRange

-- | Is the <a>NV_vertex_array_range</a> extension supported?
glGetNVVertexArrayRange :: MonadIO m => m Bool

-- | Is the <a>NV_vertex_array_range</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVVertexArrayRange</a> in those cases
--   instead.
gl_NV_vertex_array_range :: Bool
glFlushVertexArrayRangeNV :: MonadIO m => m ()
glVertexArrayRangeNV :: MonadIO m => GLsizei -> Ptr a -> m ()


module Graphics.GL.NV.VertexArrayRange2

-- | Is the <a>NV_vertex_array_range2</a> extension supported?
glGetNVVertexArrayRange2 :: MonadIO m => m Bool

-- | Is the <a>NV_vertex_array_range2</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVVertexArrayRange2</a> in those cases
--   instead.
gl_NV_vertex_array_range2 :: Bool


module Graphics.GL.NV.VertexAttribInteger64Bit

-- | Is the <a>NV_vertex_attrib_integer_64bit</a> extension supported?
glGetNVVertexAttribInteger64Bit :: MonadIO m => m Bool

-- | Is the <a>NV_vertex_attrib_integer_64bit</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetNVVertexAttribInteger64Bit</a> in
--   those cases instead.
gl_NV_vertex_attrib_integer_64bit :: Bool
glGetVertexAttribLi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
glGetVertexAttribLui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
glVertexAttribL1i64NV :: MonadIO m => GLuint -> GLint64EXT -> m ()
glVertexAttribL1i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
glVertexAttribL1ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> m ()
glVertexAttribL1ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
glVertexAttribL2i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> m ()
glVertexAttribL2i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
glVertexAttribL2ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> m ()
glVertexAttribL2ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
glVertexAttribL3i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glVertexAttribL3i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
glVertexAttribL3ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glVertexAttribL3ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
glVertexAttribL4i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glVertexAttribL4i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
glVertexAttribL4ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glVertexAttribL4ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
glVertexAttribLFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()


module Graphics.GL.NV.VertexBufferUnifiedMemory

-- | Is the <a>NV_vertex_buffer_unified_memory</a> extension supported?
glGetNVVertexBufferUnifiedMemory :: MonadIO m => m Bool

-- | Is the <a>NV_vertex_buffer_unified_memory</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetNVVertexBufferUnifiedMemory</a> in those cases instead.
gl_NV_vertex_buffer_unified_memory :: Bool
glBufferAddressRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> m ()
glColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
glEdgeFlagFormatNV :: MonadIO m => GLsizei -> m ()
glFogCoordFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
glGetIntegerui64i_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint64EXT -> m ()
glIndexFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
glNormalFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
glSecondaryColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
glTexCoordFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
glVertexAttribFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> m ()
glVertexAttribIFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()
glVertexFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()


module Graphics.GL.NV.VertexProgram

-- | Is the <a>NV_vertex_program</a> extension supported?
glGetNVVertexProgram :: MonadIO m => m Bool

-- | Is the <a>NV_vertex_program</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVVertexProgram</a> in those cases instead.
gl_NV_vertex_program :: Bool
glAreProgramsResidentNV :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | This command is an alias for <a>glBindProgramARB</a>.
glBindProgramNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glDeleteProgramsARB</a>.
glDeleteProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glExecuteProgramNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGenProgramsARB</a>.
glGenProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGetProgramParameterdvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetProgramParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetProgramStringNV :: MonadIO m => GLuint -> GLenum -> Ptr GLubyte -> m ()
glGetProgramivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetTrackMatrixivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetVertexAttribPointerv</a>.
glGetVertexAttribPointervNV :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetVertexAttribdv</a>.
glGetVertexAttribdvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glGetVertexAttribfv</a>.
glGetVertexAttribfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetVertexAttribiv</a>.
glGetVertexAttribivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glIsProgramARB</a>.
glIsProgramNV :: MonadIO m => GLuint -> m GLboolean
glLoadProgramNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramParameter4dvNV</a>.
glProgramParameter4dNV :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramParameter4dvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramParameter4fvNV</a>.
glProgramParameter4fNV :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramParameter4fvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glProgramParameters4dvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
glProgramParameters4fvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glRequestResidentProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glTrackMatrixNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLenum -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1dvNV</a>.
--   This command is an alias for <a>glVertexAttrib1d</a>.
glVertexAttrib1dNV :: MonadIO m => GLuint -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib1dv</a>.
glVertexAttrib1dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1fvNV</a>.
--   This command is an alias for <a>glVertexAttrib1f</a>.
glVertexAttrib1fNV :: MonadIO m => GLuint -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib1fv</a>.
glVertexAttrib1fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1svNV</a>.
--   This command is an alias for <a>glVertexAttrib1s</a>.
glVertexAttrib1sNV :: MonadIO m => GLuint -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib1sv</a>.
glVertexAttrib1svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2dvNV</a>.
--   This command is an alias for <a>glVertexAttrib2d</a>.
glVertexAttrib2dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib2dv</a>.
glVertexAttrib2dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2fvNV</a>.
--   This command is an alias for <a>glVertexAttrib2f</a>.
glVertexAttrib2fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib2fv</a>.
glVertexAttrib2fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2svNV</a>.
--   This command is an alias for <a>glVertexAttrib2s</a>.
glVertexAttrib2sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib2sv</a>.
glVertexAttrib2svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3dvNV</a>.
--   This command is an alias for <a>glVertexAttrib3d</a>.
glVertexAttrib3dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib3dv</a>.
glVertexAttrib3dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3fvNV</a>.
--   This command is an alias for <a>glVertexAttrib3f</a>.
glVertexAttrib3fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib3fv</a>.
glVertexAttrib3fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3svNV</a>.
--   This command is an alias for <a>glVertexAttrib3s</a>.
glVertexAttrib3sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib3sv</a>.
glVertexAttrib3svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4dvNV</a>.
--   This command is an alias for <a>glVertexAttrib4d</a>.
glVertexAttrib4dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib4dv</a>.
glVertexAttrib4dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4fvNV</a>.
--   This command is an alias for <a>glVertexAttrib4f</a>.
glVertexAttrib4fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib4fv</a>.
glVertexAttrib4fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4svNV</a>.
--   This command is an alias for <a>glVertexAttrib4s</a>.
glVertexAttrib4sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4sv</a>.
glVertexAttrib4svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4ubvNV</a>.
--   This command is an alias for <a>glVertexAttrib4Nub</a>.
glVertexAttrib4ubNV :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nubv</a>.
glVertexAttrib4ubvNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVertexAttribPointerNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glVertexAttribs1dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs1fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs1svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs2dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs2fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs2svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs3dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs3fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs3svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs4svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs4ubvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> m ()


module Graphics.GL.NV.VertexProgram2Option

-- | Is the <a>NV_vertex_program2_option</a> extension supported?
glGetNVVertexProgram2Option :: MonadIO m => m Bool

-- | Is the <a>NV_vertex_program2_option</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVVertexProgram2Option</a> in those cases
--   instead.
gl_NV_vertex_program2_option :: Bool


module Graphics.GL.NV.VertexProgram3

-- | Is the <a>NV_vertex_program3</a> extension supported?
glGetNVVertexProgram3 :: MonadIO m => m Bool

-- | Is the <a>NV_vertex_program3</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVVertexProgram3</a> in those cases instead.
gl_NV_vertex_program3 :: Bool


module Graphics.GL.NV.VertexProgram4

-- | Is the <a>NV_vertex_program4</a> extension supported?
glGetNVVertexProgram4 :: MonadIO m => m Bool

-- | Is the <a>NV_vertex_program4</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVVertexProgram4</a> in those cases instead.
gl_NV_vertex_program4 :: Bool

-- | This command is an alias for <a>glGetVertexAttribIiv</a>.
glGetVertexAttribIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetVertexAttribIuiv</a>.
glGetVertexAttribIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is <a>glVertexAttribI1ivEXT</a>.
--   This command is an alias for <a>glVertexAttribI1i</a>.
glVertexAttribI1iEXT :: MonadIO m => GLuint -> GLint -> m ()

-- | This command is an alias for <a>glVertexAttribI1iv</a>.
glVertexAttribI1ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glVertexAttribI1uivEXT</a>. This command is an alias for
--   <a>glVertexAttribI1ui</a>.
glVertexAttribI1uiEXT :: MonadIO m => GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI1uiv</a>.
glVertexAttribI1uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is <a>glVertexAttribI2ivEXT</a>.
--   This command is an alias for <a>glVertexAttribI2i</a>.
glVertexAttribI2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glVertexAttribI2iv</a>.
glVertexAttribI2ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glVertexAttribI2uivEXT</a>. This command is an alias for
--   <a>glVertexAttribI2ui</a>.
glVertexAttribI2uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI2uiv</a>.
glVertexAttribI2uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is
--   <tt>glVertexAttribI3ivEXT</tt>. This command is an alias for
--   <a>glVertexAttribI3i</a>.
glVertexAttribI3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glVertexAttribI3iv</a>.
glVertexAttribI3ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glVertexAttribI3uivEXT</a>. This command is an alias for
--   <a>glVertexAttribI3ui</a>.
glVertexAttribI3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI3uiv</a>.
glVertexAttribI3uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI4bv</a>.
glVertexAttribI4bvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | The vector equivalent of this command is <a>glVertexAttribI4ivEXT</a>.
--   This command is an alias for <a>glVertexAttribI4i</a>.
glVertexAttribI4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glVertexAttribI4iv</a>.
glVertexAttribI4ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glVertexAttribI4sv</a>.
glVertexAttribI4svEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttribI4ubv</a>.
glVertexAttribI4ubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | The vector equivalent of this command is
--   <a>glVertexAttribI4uivEXT</a>. This command is an alias for
--   <a>glVertexAttribI4ui</a>.
glVertexAttribI4uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI4uiv</a>.
glVertexAttribI4uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttribI4usv</a>.
glVertexAttribI4usvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | This command is an alias for <a>glVertexAttribIPointer</a>.
glVertexAttribIPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.NV.VideoCapture

-- | Is the <a>NV_video_capture</a> extension supported?
glGetNVVideoCapture :: MonadIO m => m Bool

-- | Is the <a>NV_video_capture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetNVVideoCapture</a> in those cases instead.
gl_NV_video_capture :: Bool
glBeginVideoCaptureNV :: MonadIO m => GLuint -> m ()
glBindVideoCaptureStreamBufferNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()
glBindVideoCaptureStreamTextureNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
glEndVideoCaptureNV :: MonadIO m => GLuint -> m ()
glGetVideoCaptureStreamdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetVideoCaptureStreamfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVideoCaptureStreamivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetVideoCaptureivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glVideoCaptureNV :: MonadIO m => GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum
glVideoCaptureStreamParameterdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
glVideoCaptureStreamParameterfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glVideoCaptureStreamParameterivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.NV.ViewportSwizzle

-- | Is the <a>NV_viewport_swizzle</a> extension supported?
glGetNVViewportSwizzle :: MonadIO m => m Bool

-- | Is the <a>NV_viewport_swizzle</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVViewportSwizzle</a> in those cases
--   instead.
gl_NV_viewport_swizzle :: Bool
glViewportSwizzleNV :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()


-- | A convenience module, combining all raw modules containing NV
--   extensions.
module Graphics.GL.NV


module Graphics.GL.NVX.ConditionalRender

-- | Is the <a>NVX_conditional_render</a> extension supported?
glGetNVXConditionalRender :: MonadIO m => m Bool

-- | Is the <a>NVX_conditional_render</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVXConditionalRender</a> in those cases
--   instead.
gl_NVX_conditional_render :: Bool
glBeginConditionalRenderNVX :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glEndConditionalRender</a>.
glEndConditionalRenderNVX :: MonadIO m => m ()


module Graphics.GL.NVX.GPUMemoryInfo

-- | Is the <a>NVX_gpu_memory_info</a> extension supported?
glGetNVXGPUMemoryInfo :: MonadIO m => m Bool

-- | Is the <a>NVX_gpu_memory_info</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVXGPUMemoryInfo</a> in those cases
--   instead.
gl_NVX_gpu_memory_info :: Bool


module Graphics.GL.NVX.LinkedGPUMulticast

-- | Is the <a>NVX_linked_gpu_multicast</a> extension supported?
glGetNVXLinkedGPUMulticast :: MonadIO m => m Bool

-- | Is the <a>NVX_linked_gpu_multicast</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetNVXLinkedGPUMulticast</a> in those cases
--   instead.
gl_NVX_linked_gpu_multicast :: Bool
glLGPUCopyImageSubDataNVX :: MonadIO m => GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
glLGPUInterlockNVX :: MonadIO m => m ()
glLGPUNamedBufferSubDataNVX :: MonadIO m => GLbitfield -> GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()


-- | A convenience module, combining all raw modules containing NVX
--   extensions.
module Graphics.GL.NVX


module Graphics.GL.OES.ByteCoordinates

-- | Is the <a>OES_byte_coordinates</a> extension supported?
glGetOESByteCoordinates :: MonadIO m => m Bool

-- | Is the <a>OES_byte_coordinates</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetOESByteCoordinates</a> in those cases
--   instead.
gl_OES_byte_coordinates :: Bool

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8
glMultiTexCoord1bOES :: MonadIO m => GLenum -> GLbyte -> m ()
glMultiTexCoord1bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord2bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> m ()
glMultiTexCoord2bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord3bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
glMultiTexCoord3bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glMultiTexCoord4bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glMultiTexCoord4bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glTexCoord1bOES :: MonadIO m => GLbyte -> m ()
glTexCoord1bvOES :: MonadIO m => Ptr GLbyte -> m ()
glTexCoord2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
glTexCoord2bvOES :: MonadIO m => Ptr GLbyte -> m ()
glTexCoord3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glTexCoord3bvOES :: MonadIO m => Ptr GLbyte -> m ()
glTexCoord4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glTexCoord4bvOES :: MonadIO m => Ptr GLbyte -> m ()
glVertex2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
glVertex2bvOES :: MonadIO m => Ptr GLbyte -> m ()
glVertex3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glVertex3bvOES :: MonadIO m => Ptr GLbyte -> m ()
glVertex4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glVertex4bvOES :: MonadIO m => Ptr GLbyte -> m ()


module Graphics.GL.OES.CompressedPalettedTexture

-- | Is the <a>OES_compressed_paletted_texture</a> extension supported?
glGetOESCompressedPalettedTexture :: MonadIO m => m Bool

-- | Is the <a>OES_compressed_paletted_texture</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetOESCompressedPalettedTexture</a> in those cases instead.
gl_OES_compressed_paletted_texture :: Bool


module Graphics.GL.OES.FixedPoint

-- | Is the <a>OES_fixed_point</a> extension supported?
glGetOESFixedPoint :: MonadIO m => m Bool

-- | Is the <a>OES_fixed_point</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetOESFixedPoint</a> in those cases instead.
gl_OES_fixed_point :: Bool
glAccumxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glAlphaFuncxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glBitmapxOES :: MonadIO m => GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> m ()
glBlendColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glClearAccumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glClearColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glClearDepthxOES :: MonadIO m => GLfixed -> m ()
glClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glColor3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glColor3xvOES :: MonadIO m => Ptr GLfixed -> m ()
glColor4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glColor4xvOES :: MonadIO m => Ptr GLfixed -> m ()
glConvolutionParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glDepthRangexOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glEvalCoord1xOES :: MonadIO m => GLfixed -> m ()
glEvalCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()
glEvalCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glEvalCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
glFeedbackBufferxOES :: MonadIO m => GLsizei -> GLenum -> Ptr GLfixed -> m ()
glFogxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glFogxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glFrustumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glGetClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glGetConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetFixedvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glGetHistogramParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetLightxOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetMapxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glGetPixelMapxv :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()
glGetTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetTexLevelParameterxvOES :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()
glGetTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glIndexxOES :: MonadIO m => GLfixed -> m ()
glIndexxvOES :: MonadIO m => Ptr GLfixed -> m ()
glLightModelxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glLightModelxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glLightxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glLineWidthxOES :: MonadIO m => GLfixed -> m ()
glLoadMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
glLoadTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
glMap1xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
glMap2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
glMapGrid1xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> m ()
glMapGrid2xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glMultMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
glMultTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
glMultiTexCoord1xOES :: MonadIO m => GLenum -> GLfixed -> m ()
glMultiTexCoord1xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glMultiTexCoord2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> m ()
glMultiTexCoord2xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glMultiTexCoord3xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> m ()
glMultiTexCoord3xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glMultiTexCoord4xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glMultiTexCoord4xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glNormal3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glNormal3xvOES :: MonadIO m => Ptr GLfixed -> m ()
glOrthoxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glPassThroughxOES :: MonadIO m => GLfixed -> m ()
glPixelMapx :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()
glPixelStorex :: MonadIO m => GLenum -> GLfixed -> m ()
glPixelTransferxOES :: MonadIO m => GLenum -> GLfixed -> m ()
glPixelZoomxOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glPointParameterxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
glPointSizexOES :: MonadIO m => GLfixed -> m ()
glPolygonOffsetxOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glPrioritizeTexturesxOES :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfixed -> m ()
glRasterPos2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glRasterPos2xvOES :: MonadIO m => Ptr GLfixed -> m ()
glRasterPos3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glRasterPos3xvOES :: MonadIO m => Ptr GLfixed -> m ()
glRasterPos4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glRasterPos4xvOES :: MonadIO m => Ptr GLfixed -> m ()
glRectxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glRectxvOES :: MonadIO m => Ptr GLfixed -> Ptr GLfixed -> m ()
glRotatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glScalexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glTexCoord1xOES :: MonadIO m => GLfixed -> m ()
glTexCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()
glTexCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glTexCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
glTexCoord3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glTexCoord3xvOES :: MonadIO m => Ptr GLfixed -> m ()
glTexCoord4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
glTexCoord4xvOES :: MonadIO m => Ptr GLfixed -> m ()
glTexEnvxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glTexParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glTranslatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glVertex2xOES :: MonadIO m => GLfixed -> m ()
glVertex2xvOES :: MonadIO m => Ptr GLfixed -> m ()
glVertex3xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
glVertex3xvOES :: MonadIO m => Ptr GLfixed -> m ()
glVertex4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
glVertex4xvOES :: MonadIO m => Ptr GLfixed -> m ()


module Graphics.GL.OES.QueryMatrix

-- | Is the <a>OES_query_matrix</a> extension supported?
glGetOESQueryMatrix :: MonadIO m => m Bool

-- | Is the <a>OES_query_matrix</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetOESQueryMatrix</a> in those cases instead.
gl_OES_query_matrix :: Bool
glQueryMatrixxOES :: MonadIO m => Ptr GLfixed -> Ptr GLint -> m GLbitfield


module Graphics.GL.OES.ReadFormat

-- | Is the <a>OES_read_format</a> extension supported?
glGetOESReadFormat :: MonadIO m => m Bool

-- | Is the <a>OES_read_format</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetOESReadFormat</a> in those cases instead.
gl_OES_read_format :: Bool


module Graphics.GL.OES.SinglePrecision

-- | Is the <a>OES_single_precision</a> extension supported?
glGetOESSinglePrecision :: MonadIO m => m Bool

-- | Is the <a>OES_single_precision</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetOESSinglePrecision</a> in those cases
--   instead.
gl_OES_single_precision :: Bool

-- | This command is an alias for <a>glClearDepthf</a>.
glClearDepthfOES :: MonadIO m => GLclampf -> m ()
glClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glDepthRangef</a>.
glDepthRangefOES :: MonadIO m => GLclampf -> GLclampf -> m ()
glFrustumfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glGetClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glOrthofOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()


-- | A convenience module, combining all raw modules containing OES
--   extensions.
module Graphics.GL.OES


module Graphics.GL.OML.Interlace

-- | Is the <a>OML_interlace</a> extension supported?
glGetOMLInterlace :: MonadIO m => m Bool

-- | Is the <a>OML_interlace</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetOMLInterlace</a> in those cases instead.
gl_OML_interlace :: Bool


module Graphics.GL.OML.Resample

-- | Is the <a>OML_resample</a> extension supported?
glGetOMLResample :: MonadIO m => m Bool

-- | Is the <a>OML_resample</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetOMLResample</a> in those cases instead.
gl_OML_resample :: Bool


module Graphics.GL.OML.Subsample

-- | Is the <a>OML_subsample</a> extension supported?
glGetOMLSubsample :: MonadIO m => m Bool

-- | Is the <a>OML_subsample</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetOMLSubsample</a> in those cases instead.
gl_OML_subsample :: Bool


-- | A convenience module, combining all raw modules containing OML
--   extensions.
module Graphics.GL.OML


module Graphics.GL.OVR.Multiview

-- | Is the <a>OVR_multiview</a> extension supported?
glGetOVRMultiview :: MonadIO m => m Bool

-- | Is the <a>OVR_multiview</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetOVRMultiview</a> in those cases instead.
gl_OVR_multiview :: Bool
glFramebufferTextureMultiviewOVR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> m ()


-- | A convenience module, combining all raw modules containing OVR
--   extensions.
module Graphics.GL.OVR


module Graphics.GL.PGI.MiscHints

-- | Is the <a>PGI_misc_hints</a> extension supported?
glGetPGIMiscHints :: MonadIO m => m Bool

-- | Is the <a>PGI_misc_hints</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetPGIMiscHints</a> in those cases instead.
gl_PGI_misc_hints :: Bool
glHintPGI :: MonadIO m => GLenum -> GLint -> m ()


module Graphics.GL.PGI.VertexHints

-- | Is the <a>PGI_vertex_hints</a> extension supported?
glGetPGIVertexHints :: MonadIO m => m Bool

-- | Is the <a>PGI_vertex_hints</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetPGIVertexHints</a> in those cases instead.
gl_PGI_vertex_hints :: Bool


-- | A convenience module, combining all raw modules containing PGI
--   extensions.
module Graphics.GL.PGI


module Graphics.GL.REND.ScreenCoordinates

-- | Is the <a>REND_screen_coordinates</a> extension supported?
glGetRENDScreenCoordinates :: MonadIO m => m Bool

-- | Is the <a>REND_screen_coordinates</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetRENDScreenCoordinates</a> in those cases
--   instead.
gl_REND_screen_coordinates :: Bool


-- | A convenience module, combining all raw modules containing REND
--   extensions.
module Graphics.GL.REND


module Graphics.GL.S3.S3TC

-- | Is the <a>S3_s3tc</a> extension supported?
glGetS3S3TC :: MonadIO m => m Bool

-- | Is the <a>S3_s3tc</a> extension supported? Note that in the presence
--   of multiple contexts with different capabilities, this might be wrong.
--   Use <a>glGetS3S3TC</a> in those cases instead.
gl_S3_s3tc :: Bool


-- | A convenience module, combining all raw modules containing S3
--   extensions.
module Graphics.GL.S3


module Graphics.GL.SGI.ColorMatrix

-- | Is the <a>SGI_color_matrix</a> extension supported?
glGetSGIColorMatrix :: MonadIO m => m Bool

-- | Is the <a>SGI_color_matrix</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIColorMatrix</a> in those cases instead.
gl_SGI_color_matrix :: Bool


module Graphics.GL.SGI.ColorTable

-- | Is the <a>SGI_color_table</a> extension supported?
glGetSGIColorTable :: MonadIO m => m Bool

-- | Is the <a>SGI_color_table</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIColorTable</a> in those cases instead.
gl_SGI_color_table :: Bool

-- | This command is an alias for <a>glColorTableParameterfv</a>.
glColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glColorTableParameteriv</a>.
glColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <tt>glColorTable</tt>.
glColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glCopyColorTable</a>.
glCopyColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
glGetColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()


module Graphics.GL.SGI.TextureColorTable

-- | Is the <a>SGI_texture_color_table</a> extension supported?
glGetSGITextureColorTable :: MonadIO m => m Bool

-- | Is the <a>SGI_texture_color_table</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGITextureColorTable</a> in those cases
--   instead.
gl_SGI_texture_color_table :: Bool


-- | A convenience module, combining all raw modules containing SGI
--   extensions.
module Graphics.GL.SGI


module Graphics.GL.SGIS.DetailTexture

-- | Is the <a>SGIS_detail_texture</a> extension supported?
glGetSGISDetailTexture :: MonadIO m => m Bool

-- | Is the <a>SGIS_detail_texture</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISDetailTexture</a> in those cases
--   instead.
gl_SGIS_detail_texture :: Bool
glDetailTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetDetailTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()


module Graphics.GL.SGIS.FogFunction

-- | Is the <a>SGIS_fog_function</a> extension supported?
glGetSGISFogFunction :: MonadIO m => m Bool

-- | Is the <a>SGIS_fog_function</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGISFogFunction</a> in those cases instead.
gl_SGIS_fog_function :: Bool
glFogFuncSGIS :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
glGetFogFuncSGIS :: MonadIO m => Ptr GLfloat -> m ()


module Graphics.GL.SGIS.GenerateMipmap

-- | Is the <a>SGIS_generate_mipmap</a> extension supported?
glGetSGISGenerateMipmap :: MonadIO m => m Bool

-- | Is the <a>SGIS_generate_mipmap</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISGenerateMipmap</a> in those cases
--   instead.
gl_SGIS_generate_mipmap :: Bool


module Graphics.GL.SGIS.Multisample

-- | Is the <a>SGIS_multisample</a> extension supported?
glGetSGISMultisample :: MonadIO m => m Bool

-- | Is the <a>SGIS_multisample</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGISMultisample</a> in those cases instead.
gl_SGIS_multisample :: Bool

-- | This command is an alias for <a>glSampleMaskEXT</a>.
glSampleMaskSGIS :: MonadIO m => GLclampf -> GLboolean -> m ()

-- | This command is an alias for <a>glSamplePatternEXT</a>.
glSamplePatternSGIS :: MonadIO m => GLenum -> m ()


module Graphics.GL.SGIS.PixelTexture

-- | Is the <a>SGIS_pixel_texture</a> extension supported?
glGetSGISPixelTexture :: MonadIO m => m Bool

-- | Is the <a>SGIS_pixel_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGISPixelTexture</a> in those cases instead.
gl_SGIS_pixel_texture :: Bool
glGetPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()
glPixelTexGenParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()
glPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glPixelTexGenParameteriSGIS :: MonadIO m => GLenum -> GLint -> m ()
glPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()


module Graphics.GL.SGIS.PointLineTexgen

-- | Is the <a>SGIS_point_line_texgen</a> extension supported?
glGetSGISPointLineTexgen :: MonadIO m => m Bool

-- | Is the <a>SGIS_point_line_texgen</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISPointLineTexgen</a> in those cases
--   instead.
gl_SGIS_point_line_texgen :: Bool


module Graphics.GL.SGIS.PointParameters

-- | Is the <a>SGIS_point_parameters</a> extension supported?
glGetSGISPointParameters :: MonadIO m => m Bool

-- | Is the <a>SGIS_point_parameters</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISPointParameters</a> in those cases
--   instead.
gl_SGIS_point_parameters :: Bool

-- | This command is an alias for <tt>glPointParameterf</tt>.
glPointParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()

-- | This command is an alias for <a>glPointParameterfv</a>.
glPointParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()


module Graphics.GL.SGIS.SharpenTexture

-- | Is the <a>SGIS_sharpen_texture</a> extension supported?
glGetSGISSharpenTexture :: MonadIO m => m Bool

-- | Is the <a>SGIS_sharpen_texture</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISSharpenTexture</a> in those cases
--   instead.
gl_SGIS_sharpen_texture :: Bool
glGetSharpenTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glSharpenTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()


module Graphics.GL.SGIS.Texture4D

-- | Is the <a>SGIS_texture4D</a> extension supported?
glGetSGISTexture4D :: MonadIO m => m Bool

-- | Is the <a>SGIS_texture4D</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGISTexture4D</a> in those cases instead.
gl_SGIS_texture4D :: Bool
glTexImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTexSubImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()


module Graphics.GL.SGIS.TextureBorderClamp

-- | Is the <a>SGIS_texture_border_clamp</a> extension supported?
glGetSGISTextureBorderClamp :: MonadIO m => m Bool

-- | Is the <a>SGIS_texture_border_clamp</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISTextureBorderClamp</a> in those cases
--   instead.
gl_SGIS_texture_border_clamp :: Bool


module Graphics.GL.SGIS.TextureColorMask

-- | Is the <a>SGIS_texture_color_mask</a> extension supported?
glGetSGISTextureColorMask :: MonadIO m => m Bool

-- | Is the <a>SGIS_texture_color_mask</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISTextureColorMask</a> in those cases
--   instead.
gl_SGIS_texture_color_mask :: Bool
glTextureColorMaskSGIS :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()


module Graphics.GL.SGIS.TextureEdgeClamp

-- | Is the <a>SGIS_texture_edge_clamp</a> extension supported?
glGetSGISTextureEdgeClamp :: MonadIO m => m Bool

-- | Is the <a>SGIS_texture_edge_clamp</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISTextureEdgeClamp</a> in those cases
--   instead.
gl_SGIS_texture_edge_clamp :: Bool


module Graphics.GL.SGIS.TextureFilter4

-- | Is the <a>SGIS_texture_filter4</a> extension supported?
glGetSGISTextureFilter4 :: MonadIO m => m Bool

-- | Is the <a>SGIS_texture_filter4</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISTextureFilter4</a> in those cases
--   instead.
gl_SGIS_texture_filter4 :: Bool
glGetTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()


module Graphics.GL.SGIS.TextureLOD

-- | Is the <a>SGIS_texture_lod</a> extension supported?
glGetSGISTextureLOD :: MonadIO m => m Bool

-- | Is the <a>SGIS_texture_lod</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGISTextureLOD</a> in those cases instead.
gl_SGIS_texture_lod :: Bool


module Graphics.GL.SGIS.TextureSelect

-- | Is the <a>SGIS_texture_select</a> extension supported?
glGetSGISTextureSelect :: MonadIO m => m Bool

-- | Is the <a>SGIS_texture_select</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGISTextureSelect</a> in those cases
--   instead.
gl_SGIS_texture_select :: Bool


-- | A convenience module, combining all raw modules containing SGIS
--   extensions.
module Graphics.GL.SGIS


module Graphics.GL.SGIX.Async

-- | Is the <a>SGIX_async</a> extension supported?
glGetSGIXAsync :: MonadIO m => m Bool

-- | Is the <a>SGIX_async</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXAsync</a> in those cases instead.
gl_SGIX_async :: Bool
glAsyncMarkerSGIX :: MonadIO m => GLuint -> m ()
glDeleteAsyncMarkersSGIX :: MonadIO m => GLuint -> GLsizei -> m ()
glFinishAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint
glGenAsyncMarkersSGIX :: MonadIO m => GLsizei -> m GLuint
glIsAsyncMarkerSGIX :: MonadIO m => GLuint -> m GLboolean
glPollAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint


module Graphics.GL.SGIX.AsyncHistogram

-- | Is the <a>SGIX_async_histogram</a> extension supported?
glGetSGIXAsyncHistogram :: MonadIO m => m Bool

-- | Is the <a>SGIX_async_histogram</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXAsyncHistogram</a> in those cases
--   instead.
gl_SGIX_async_histogram :: Bool


module Graphics.GL.SGIX.AsyncPixel

-- | Is the <a>SGIX_async_pixel</a> extension supported?
glGetSGIXAsyncPixel :: MonadIO m => m Bool

-- | Is the <a>SGIX_async_pixel</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXAsyncPixel</a> in those cases instead.
gl_SGIX_async_pixel :: Bool


module Graphics.GL.SGIX.BlendAlphaMinmax

-- | Is the <a>SGIX_blend_alpha_minmax</a> extension supported?
glGetSGIXBlendAlphaMinmax :: MonadIO m => m Bool

-- | Is the <a>SGIX_blend_alpha_minmax</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXBlendAlphaMinmax</a> in those cases
--   instead.
gl_SGIX_blend_alpha_minmax :: Bool


module Graphics.GL.SGIX.CalligraphicFragment

-- | Is the <a>SGIX_calligraphic_fragment</a> extension supported?
glGetSGIXCalligraphicFragment :: MonadIO m => m Bool

-- | Is the <a>SGIX_calligraphic_fragment</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetSGIXCalligraphicFragment</a> in those
--   cases instead.
gl_SGIX_calligraphic_fragment :: Bool


module Graphics.GL.SGIX.Clipmap

-- | Is the <a>SGIX_clipmap</a> extension supported?
glGetSGIXClipmap :: MonadIO m => m Bool

-- | Is the <a>SGIX_clipmap</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXClipmap</a> in those cases instead.
gl_SGIX_clipmap :: Bool


module Graphics.GL.SGIX.ConvolutionAccuracy

-- | Is the <a>SGIX_convolution_accuracy</a> extension supported?
glGetSGIXConvolutionAccuracy :: MonadIO m => m Bool

-- | Is the <a>SGIX_convolution_accuracy</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXConvolutionAccuracy</a> in those cases
--   instead.
gl_SGIX_convolution_accuracy :: Bool


module Graphics.GL.SGIX.DepthTexture

-- | Is the <a>SGIX_depth_texture</a> extension supported?
glGetSGIXDepthTexture :: MonadIO m => m Bool

-- | Is the <a>SGIX_depth_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXDepthTexture</a> in those cases instead.
gl_SGIX_depth_texture :: Bool


module Graphics.GL.SGIX.FlushRaster

-- | Is the <a>SGIX_flush_raster</a> extension supported?
glGetSGIXFlushRaster :: MonadIO m => m Bool

-- | Is the <a>SGIX_flush_raster</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXFlushRaster</a> in those cases instead.
gl_SGIX_flush_raster :: Bool
glFlushRasterSGIX :: MonadIO m => m ()


module Graphics.GL.SGIX.FogOffset

-- | Is the <a>SGIX_fog_offset</a> extension supported?
glGetSGIXFogOffset :: MonadIO m => m Bool

-- | Is the <a>SGIX_fog_offset</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXFogOffset</a> in those cases instead.
gl_SGIX_fog_offset :: Bool


module Graphics.GL.SGIX.FragmentLighting

-- | Is the <a>SGIX_fragment_lighting</a> extension supported?
glGetSGIXFragmentLighting :: MonadIO m => m Bool

-- | Is the <a>SGIX_fragment_lighting</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXFragmentLighting</a> in those cases
--   instead.
gl_SGIX_fragment_lighting :: Bool
glFragmentColorMaterialSGIX :: MonadIO m => GLenum -> GLenum -> m ()
glFragmentLightModelfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
glFragmentLightModelfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glFragmentLightModeliSGIX :: MonadIO m => GLenum -> GLint -> m ()
glFragmentLightModelivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
glFragmentLightfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentLightiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glFragmentMaterialfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentMaterialiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glLightEnviSGIX :: MonadIO m => GLenum -> GLint -> m ()


module Graphics.GL.SGIX.Framezoom

-- | Is the <a>SGIX_framezoom</a> extension supported?
glGetSGIXFramezoom :: MonadIO m => m Bool

-- | Is the <a>SGIX_framezoom</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXFramezoom</a> in those cases instead.
gl_SGIX_framezoom :: Bool
glFrameZoomSGIX :: MonadIO m => GLint -> m ()


module Graphics.GL.SGIX.IglooInterface

-- | Is the <a>SGIX_igloo_interface</a> extension supported?
glGetSGIXIglooInterface :: MonadIO m => m Bool

-- | Is the <a>SGIX_igloo_interface</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXIglooInterface</a> in those cases
--   instead.
gl_SGIX_igloo_interface :: Bool
glIglooInterfaceSGIX :: MonadIO m => GLenum -> Ptr a -> m ()


module Graphics.GL.SGIX.Instruments

-- | Is the <a>SGIX_instruments</a> extension supported?
glGetSGIXInstruments :: MonadIO m => m Bool

-- | Is the <a>SGIX_instruments</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXInstruments</a> in those cases instead.
gl_SGIX_instruments :: Bool
glGetInstrumentsSGIX :: MonadIO m => m GLint
glInstrumentsBufferSGIX :: MonadIO m => GLsizei -> Ptr GLint -> m ()
glPollInstrumentsSGIX :: MonadIO m => Ptr GLint -> m GLint
glReadInstrumentsSGIX :: MonadIO m => GLint -> m ()
glStartInstrumentsSGIX :: MonadIO m => m ()
glStopInstrumentsSGIX :: MonadIO m => GLint -> m ()


module Graphics.GL.SGIX.Interlace

-- | Is the <a>SGIX_interlace</a> extension supported?
glGetSGIXInterlace :: MonadIO m => m Bool

-- | Is the <a>SGIX_interlace</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXInterlace</a> in those cases instead.
gl_SGIX_interlace :: Bool


module Graphics.GL.SGIX.IrInstrument1

-- | Is the <a>SGIX_ir_instrument1</a> extension supported?
glGetSGIXIrInstrument1 :: MonadIO m => m Bool

-- | Is the <a>SGIX_ir_instrument1</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXIrInstrument1</a> in those cases
--   instead.
gl_SGIX_ir_instrument1 :: Bool


module Graphics.GL.SGIX.ListPriority

-- | Is the <a>SGIX_list_priority</a> extension supported?
glGetSGIXListPriority :: MonadIO m => m Bool

-- | Is the <a>SGIX_list_priority</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXListPriority</a> in those cases instead.
gl_SGIX_list_priority :: Bool
glGetListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glListParameterfSGIX :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
glListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glListParameteriSGIX :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.SGIX.PixelTexture

-- | Is the <a>SGIX_pixel_texture</a> extension supported?
glGetSGIXPixelTexture :: MonadIO m => m Bool

-- | Is the <a>SGIX_pixel_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXPixelTexture</a> in those cases instead.
gl_SGIX_pixel_texture :: Bool
glPixelTexGenSGIX :: MonadIO m => GLenum -> m ()


module Graphics.GL.SGIX.PixelTiles

-- | Is the <a>SGIX_pixel_tiles</a> extension supported?
glGetSGIXPixelTiles :: MonadIO m => m Bool

-- | Is the <a>SGIX_pixel_tiles</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXPixelTiles</a> in those cases instead.
gl_SGIX_pixel_tiles :: Bool


module Graphics.GL.SGIX.PolynomialFFD

-- | Is the <a>SGIX_polynomial_ffd</a> extension supported?
glGetSGIXPolynomialFFD :: MonadIO m => m Bool

-- | Is the <a>SGIX_polynomial_ffd</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXPolynomialFFD</a> in those cases
--   instead.
gl_SGIX_polynomial_ffd :: Bool
glDeformSGIX :: MonadIO m => GLbitfield -> m ()
glDeformationMap3dSGIX :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glDeformationMap3fSGIX :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glLoadIdentityDeformationMapSGIX :: MonadIO m => GLbitfield -> m ()


module Graphics.GL.SGIX.ReferencePlane

-- | Is the <a>SGIX_reference_plane</a> extension supported?
glGetSGIXReferencePlane :: MonadIO m => m Bool

-- | Is the <a>SGIX_reference_plane</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXReferencePlane</a> in those cases
--   instead.
gl_SGIX_reference_plane :: Bool
glReferencePlaneSGIX :: MonadIO m => Ptr GLdouble -> m ()


module Graphics.GL.SGIX.Resample

-- | Is the <a>SGIX_resample</a> extension supported?
glGetSGIXResample :: MonadIO m => m Bool

-- | Is the <a>SGIX_resample</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXResample</a> in those cases instead.
gl_SGIX_resample :: Bool


module Graphics.GL.SGIX.ScalebiasHint

-- | Is the <a>SGIX_scalebias_hint</a> extension supported?
glGetSGIXScalebiasHint :: MonadIO m => m Bool

-- | Is the <a>SGIX_scalebias_hint</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXScalebiasHint</a> in those cases
--   instead.
gl_SGIX_scalebias_hint :: Bool


module Graphics.GL.SGIX.Shadow

-- | Is the <a>SGIX_shadow</a> extension supported?
glGetSGIXShadow :: MonadIO m => m Bool

-- | Is the <a>SGIX_shadow</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXShadow</a> in those cases instead.
gl_SGIX_shadow :: Bool


module Graphics.GL.SGIX.ShadowAmbient

-- | Is the <a>SGIX_shadow_ambient</a> extension supported?
glGetSGIXShadowAmbient :: MonadIO m => m Bool

-- | Is the <a>SGIX_shadow_ambient</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXShadowAmbient</a> in those cases
--   instead.
gl_SGIX_shadow_ambient :: Bool


module Graphics.GL.SGIX.Sprite

-- | Is the <a>SGIX_sprite</a> extension supported?
glGetSGIXSprite :: MonadIO m => m Bool

-- | Is the <a>SGIX_sprite</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXSprite</a> in those cases instead.
gl_SGIX_sprite :: Bool
glSpriteParameterfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
glSpriteParameterfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glSpriteParameteriSGIX :: MonadIO m => GLenum -> GLint -> m ()
glSpriteParameterivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()


module Graphics.GL.SGIX.Subsample

-- | Is the <a>SGIX_subsample</a> extension supported?
glGetSGIXSubsample :: MonadIO m => m Bool

-- | Is the <a>SGIX_subsample</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXSubsample</a> in those cases instead.
gl_SGIX_subsample :: Bool


module Graphics.GL.SGIX.TagSampleBuffer

-- | Is the <a>SGIX_tag_sample_buffer</a> extension supported?
glGetSGIXTagSampleBuffer :: MonadIO m => m Bool

-- | Is the <a>SGIX_tag_sample_buffer</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXTagSampleBuffer</a> in those cases
--   instead.
gl_SGIX_tag_sample_buffer :: Bool
glTagSampleBufferSGIX :: MonadIO m => m ()


module Graphics.GL.SGIX.TextureAddEnv

-- | Is the <a>SGIX_texture_add_env</a> extension supported?
glGetSGIXTextureAddEnv :: MonadIO m => m Bool

-- | Is the <a>SGIX_texture_add_env</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXTextureAddEnv</a> in those cases
--   instead.
gl_SGIX_texture_add_env :: Bool


module Graphics.GL.SGIX.TextureCoordinateClamp

-- | Is the <a>SGIX_texture_coordinate_clamp</a> extension supported?
glGetSGIXTextureCoordinateClamp :: MonadIO m => m Bool

-- | Is the <a>SGIX_texture_coordinate_clamp</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetSGIXTextureCoordinateClamp</a> in
--   those cases instead.
gl_SGIX_texture_coordinate_clamp :: Bool


module Graphics.GL.SGIX.TextureLODBias

-- | Is the <a>SGIX_texture_lod_bias</a> extension supported?
glGetSGIXTextureLODBias :: MonadIO m => m Bool

-- | Is the <a>SGIX_texture_lod_bias</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXTextureLODBias</a> in those cases
--   instead.
gl_SGIX_texture_lod_bias :: Bool


module Graphics.GL.SGIX.TextureMultiBuffer

-- | Is the <a>SGIX_texture_multi_buffer</a> extension supported?
glGetSGIXTextureMultiBuffer :: MonadIO m => m Bool

-- | Is the <a>SGIX_texture_multi_buffer</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXTextureMultiBuffer</a> in those cases
--   instead.
gl_SGIX_texture_multi_buffer :: Bool


module Graphics.GL.SGIX.TextureScaleBias

-- | Is the <a>SGIX_texture_scale_bias</a> extension supported?
glGetSGIXTextureScaleBias :: MonadIO m => m Bool

-- | Is the <a>SGIX_texture_scale_bias</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXTextureScaleBias</a> in those cases
--   instead.
gl_SGIX_texture_scale_bias :: Bool


module Graphics.GL.SGIX.VertexPreclip

-- | Is the <a>SGIX_vertex_preclip</a> extension supported?
glGetSGIXVertexPreclip :: MonadIO m => m Bool

-- | Is the <a>SGIX_vertex_preclip</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetSGIXVertexPreclip</a> in those cases
--   instead.
gl_SGIX_vertex_preclip :: Bool


module Graphics.GL.SGIX.YCrCb

-- | Is the <a>SGIX_ycrcb</a> extension supported?
glGetSGIXYCrCb :: MonadIO m => m Bool

-- | Is the <a>SGIX_ycrcb</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXYCrCb</a> in those cases instead.
gl_SGIX_ycrcb :: Bool


module Graphics.GL.SGIX.YCrCbA

-- | Is the <a>SGIX_ycrcba</a> extension supported?
glGetSGIXYCrCbA :: MonadIO m => m Bool

-- | Is the <a>SGIX_ycrcba</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSGIXYCrCbA</a> in those cases instead.
gl_SGIX_ycrcba :: Bool


-- | A convenience module, combining all raw modules containing SGIX
--   extensions.
module Graphics.GL.SGIX


module Graphics.GL.SUN.ConvolutionBorderModes

-- | Is the <a>SUN_convolution_border_modes</a> extension supported?
glGetSUNConvolutionBorderModes :: MonadIO m => m Bool

-- | Is the <a>SUN_convolution_border_modes</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetSUNConvolutionBorderModes</a> in
--   those cases instead.
gl_SUN_convolution_border_modes :: Bool


module Graphics.GL.SUN.GlobalAlpha

-- | Is the <a>SUN_global_alpha</a> extension supported?
glGetSUNGlobalAlpha :: MonadIO m => m Bool

-- | Is the <a>SUN_global_alpha</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSUNGlobalAlpha</a> in those cases instead.
gl_SUN_global_alpha :: Bool
glGlobalAlphaFactorbSUN :: MonadIO m => GLbyte -> m ()
glGlobalAlphaFactordSUN :: MonadIO m => GLdouble -> m ()
glGlobalAlphaFactorfSUN :: MonadIO m => GLfloat -> m ()
glGlobalAlphaFactoriSUN :: MonadIO m => GLint -> m ()
glGlobalAlphaFactorsSUN :: MonadIO m => GLshort -> m ()
glGlobalAlphaFactorubSUN :: MonadIO m => GLubyte -> m ()
glGlobalAlphaFactoruiSUN :: MonadIO m => GLuint -> m ()
glGlobalAlphaFactorusSUN :: MonadIO m => GLushort -> m ()


module Graphics.GL.SUN.MeshArray

-- | Is the <a>SUN_mesh_array</a> extension supported?
glGetSUNMeshArray :: MonadIO m => m Bool

-- | Is the <a>SUN_mesh_array</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSUNMeshArray</a> in those cases instead.
gl_SUN_mesh_array :: Bool
glDrawMeshArraysSUN :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()


module Graphics.GL.SUN.SliceAccum

-- | Is the <a>SUN_slice_accum</a> extension supported?
glGetSUNSliceAccum :: MonadIO m => m Bool

-- | Is the <a>SUN_slice_accum</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSUNSliceAccum</a> in those cases instead.
gl_SUN_slice_accum :: Bool


module Graphics.GL.SUN.TriangleList

-- | Is the <a>SUN_triangle_list</a> extension supported?
glGetSUNTriangleList :: MonadIO m => m Bool

-- | Is the <a>SUN_triangle_list</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSUNTriangleList</a> in those cases instead.
gl_SUN_triangle_list :: Bool
glReplacementCodePointerSUN :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr a) -> m ()
glReplacementCodeubSUN :: MonadIO m => GLubyte -> m ()
glReplacementCodeubvSUN :: MonadIO m => Ptr GLubyte -> m ()
glReplacementCodeuiSUN :: MonadIO m => GLuint -> m ()
glReplacementCodeuivSUN :: MonadIO m => Ptr GLuint -> m ()
glReplacementCodeusSUN :: MonadIO m => GLushort -> m ()
glReplacementCodeusvSUN :: MonadIO m => Ptr GLushort -> m ()


module Graphics.GL.SUN.Vertex

-- | Is the <a>SUN_vertex</a> extension supported?
glGetSUNVertex :: MonadIO m => m Bool

-- | Is the <a>SUN_vertex</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSUNVertex</a> in those cases instead.
gl_SUN_vertex :: Bool
glColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
glColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glColor4ubVertex2fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> m ()
glColor4ubVertex2fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()
glColor4ubVertex3fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor4ubVertex3fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()
glNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiColor3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiColor3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiColor4ubVertex3fSUN :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiColor4ubVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> m ()
glReplacementCodeuiNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiTexCoord2fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
glReplacementCodeuiVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
glReplacementCodeuiVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> m ()
glTexCoord2fColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glTexCoord2fColor4ubVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fColor4ubVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> m ()
glTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glTexCoord2fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
glTexCoord4fColor4fNormal3fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord4fColor4fNormal3fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
glTexCoord4fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord4fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()


-- | A convenience module, combining all raw modules containing SUN
--   extensions.
module Graphics.GL.SUN


module Graphics.GL.SUNX.ConstantData

-- | Is the <a>SUNX_constant_data</a> extension supported?
glGetSUNXConstantData :: MonadIO m => m Bool

-- | Is the <a>SUNX_constant_data</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetSUNXConstantData</a> in those cases instead.
gl_SUNX_constant_data :: Bool
glFinishTextureSUNX :: MonadIO m => m ()


-- | A convenience module, combining all raw modules containing SUNX
--   extensions.
module Graphics.GL.SUNX


module Graphics.GL.ThreeDFX.Multisample

-- | Is the <a>3DFX_multisample</a> extension supported?
glGetThreeDFXMultisample :: MonadIO m => m Bool

-- | Is the <a>3DFX_multisample</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetThreeDFXMultisample</a> in those cases instead.
gl_3DFX_multisample :: Bool


module Graphics.GL.ThreeDFX.Tbuffer

-- | Is the <a>3DFX_tbuffer</a> extension supported?
glGetThreeDFXTbuffer :: MonadIO m => m Bool

-- | Is the <a>3DFX_tbuffer</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetThreeDFXTbuffer</a> in those cases instead.
gl_3DFX_tbuffer :: Bool
glTbufferMask3DFX :: MonadIO m => GLuint -> m ()


module Graphics.GL.ThreeDFX.TextureCompressionFXT1

-- | Is the <a>3DFX_texture_compression_FXT1</a> extension supported?
glGetThreeDFXTextureCompressionFXT1 :: MonadIO m => m Bool

-- | Is the <a>3DFX_texture_compression_FXT1</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetThreeDFXTextureCompressionFXT1</a> in
--   those cases instead.
gl_3DFX_texture_compression_FXT1 :: Bool


-- | A convenience module, combining all raw modules containing 3DFX
--   extensions.
module Graphics.GL.ThreeDFX


module Graphics.GL.WIN.PhongShading

-- | Is the <a>WIN_phong_shading</a> extension supported?
glGetWINPhongShading :: MonadIO m => m Bool

-- | Is the <a>WIN_phong_shading</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetWINPhongShading</a> in those cases instead.
gl_WIN_phong_shading :: Bool


module Graphics.GL.WIN.SpecularFog

-- | Is the <a>WIN_specular_fog</a> extension supported?
glGetWINSpecularFog :: MonadIO m => m Bool

-- | Is the <a>WIN_specular_fog</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetWINSpecularFog</a> in those cases instead.
gl_WIN_specular_fog :: Bool


-- | A convenience module, combining all raw modules containing WIN
--   extensions.
module Graphics.GL.WIN


module Graphics.GL.EXT.X11SyncObject

-- | Is the <a>EXT_x11_sync_object</a> extension supported?
glGetEXTX11SyncObject :: MonadIO m => m Bool

-- | Is the <a>EXT_x11_sync_object</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTX11SyncObject</a> in those cases
--   instead.
gl_EXT_x11_sync_object :: Bool
glImportSyncEXT :: MonadIO m => GLenum -> GLintptr -> GLbitfield -> m GLsync


module Graphics.GL.EXT.WindowRectangles

-- | Is the <a>EXT_window_rectangles</a> extension supported?
glGetEXTWindowRectangles :: MonadIO m => m Bool

-- | Is the <a>EXT_window_rectangles</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTWindowRectangles</a> in those cases
--   instead.
gl_EXT_window_rectangles :: Bool
glWindowRectanglesEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLint -> m ()


module Graphics.GL.EXT.Win32KeyedMutex

-- | Is the <a>EXT_win32_keyed_mutex</a> extension supported?
glGetEXTWin32KeyedMutex :: MonadIO m => m Bool

-- | Is the <a>EXT_win32_keyed_mutex</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTWin32KeyedMutex</a> in those cases
--   instead.
gl_EXT_win32_keyed_mutex :: Bool
glAcquireKeyedMutexWin32EXT :: MonadIO m => GLuint -> GLuint64 -> GLuint -> m GLboolean
glReleaseKeyedMutexWin32EXT :: MonadIO m => GLuint -> GLuint64 -> m GLboolean


module Graphics.GL.EXT.VertexWeighting

-- | Is the <a>EXT_vertex_weighting</a> extension supported?
glGetEXTVertexWeighting :: MonadIO m => m Bool

-- | Is the <a>EXT_vertex_weighting</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTVertexWeighting</a> in those cases
--   instead.
gl_EXT_vertex_weighting :: Bool
glVertexWeightPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | The vector equivalent of this command is <a>glVertexWeightfvEXT</a>.
glVertexWeightfEXT :: MonadIO m => GLfloat -> m ()
glVertexWeightfvEXT :: MonadIO m => Ptr GLfloat -> m ()


module Graphics.GL.EXT.VertexShader

-- | Is the <a>EXT_vertex_shader</a> extension supported?
glGetEXTVertexShader :: MonadIO m => m Bool

-- | Is the <a>EXT_vertex_shader</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTVertexShader</a> in those cases instead.
gl_EXT_vertex_shader :: Bool
glBeginVertexShaderEXT :: MonadIO m => m ()
glBindLightParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
glBindMaterialParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
glBindParameterEXT :: MonadIO m => GLenum -> m GLuint
glBindTexGenParameterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> m GLuint
glBindTextureUnitParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
glBindVertexShaderEXT :: MonadIO m => GLuint -> m ()
glDeleteVertexShaderEXT :: MonadIO m => GLuint -> m ()
glDisableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
glEnableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
glEndVertexShaderEXT :: MonadIO m => m ()
glExtractComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glGenSymbolsEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m GLuint
glGenVertexShadersEXT :: MonadIO m => GLuint -> m GLuint
glGetInvariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
glGetInvariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetInvariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetLocalConstantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
glGetLocalConstantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetLocalConstantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
glGetVariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVariantPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()
glInsertComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glIsVariantEnabledEXT :: MonadIO m => GLuint -> GLenum -> m GLboolean
glSetInvariantEXT :: MonadIO m => GLuint -> GLenum -> Ptr a -> m ()
glSetLocalConstantEXT :: MonadIO m => GLuint -> GLenum -> Ptr a -> m ()
glShaderOp1EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
glShaderOp2EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> m ()
glShaderOp3EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glSwizzleEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glVariantPointerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr a -> m ()
glVariantbvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
glVariantdvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVariantfvEXT :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVariantivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVariantsvEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVariantubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVariantuivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVariantusvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glWriteMaskEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()


module Graphics.GL.EXT.VertexAttrib64Bit

-- | Is the <a>EXT_vertex_attrib_64bit</a> extension supported?
glGetEXTVertexAttrib64Bit :: MonadIO m => m Bool

-- | Is the <a>EXT_vertex_attrib_64bit</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTVertexAttrib64Bit</a> in those cases
--   instead.
gl_EXT_vertex_attrib_64bit :: Bool

-- | This command is an alias for <a>glGetVertexAttribLdv</a>.
glGetVertexAttribLdvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL1d</a>.
glVertexAttribL1dEXT :: MonadIO m => GLuint -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL1dv</a>.
glVertexAttribL1dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL2d</a>.
glVertexAttribL2dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL2dv</a>.
glVertexAttribL2dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL3d</a>.
glVertexAttribL3dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL3dv</a>.
glVertexAttribL3dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL4d</a>.
glVertexAttribL4dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribL4dv</a>.
glVertexAttribL4dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttribLPointer</a>.
glVertexAttribLPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.EXT.VertexArrayBGRA

-- | Is the <a>EXT_vertex_array_bgra</a> extension supported?
glGetEXTVertexArrayBGRA :: MonadIO m => m Bool

-- | Is the <a>EXT_vertex_array_bgra</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTVertexArrayBGRA</a> in those cases
--   instead.
gl_EXT_vertex_array_bgra :: Bool


module Graphics.GL.EXT.VertexArray

-- | Is the <a>EXT_vertex_array</a> extension supported?
glGetEXTVertexArray :: MonadIO m => m Bool

-- | Is the <a>EXT_vertex_array</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTVertexArray</a> in those cases instead.
gl_EXT_vertex_array :: Bool

-- | This command is an alias for <a>glArrayElement</a>.
glArrayElementEXT :: MonadIO m => GLint -> m ()
glColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glDrawArrays</a>.
glDrawArraysEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
glEdgeFlagPointerEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLboolean -> m ()

-- | This command is an alias for <a>glGetPointerv</a>.
glGetPointervEXT :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()
glIndexPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()
glNormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()
glTexCoordPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()
glVertexPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> m ()


module Graphics.GL.EXT.TransformFeedback

-- | Is the <a>EXT_transform_feedback</a> extension supported?
glGetEXTTransformFeedback :: MonadIO m => m Bool

-- | Is the <a>EXT_transform_feedback</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTransformFeedback</a> in those cases
--   instead.
gl_EXT_transform_feedback :: Bool

-- | This command is an alias for <a>glBeginTransformFeedback</a>.
glBeginTransformFeedbackEXT :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glBindBufferBase</a>.
glBindBufferBaseEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
glBindBufferOffsetEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()

-- | This command is an alias for <a>glBindBufferRange</a>.
glBindBufferRangeEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | This command is an alias for <a>glEndTransformFeedback</a>.
glEndTransformFeedbackEXT :: MonadIO m => m ()

-- | This command is an alias for <a>glGetTransformFeedbackVarying</a>.
glGetTransformFeedbackVaryingEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glTransformFeedbackVaryings</a>.
glTransformFeedbackVaryingsEXT :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()


module Graphics.GL.EXT.TimerQuery

-- | Is the <a>EXT_timer_query</a> extension supported?
glGetEXTTimerQuery :: MonadIO m => m Bool

-- | Is the <a>EXT_timer_query</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTTimerQuery</a> in those cases instead.
gl_EXT_timer_query :: Bool

-- | This command is an alias for <a>glGetQueryObjecti64v</a>.
glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | This command is an alias for <a>glGetQueryObjectui64v</a>.
glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()


module Graphics.GL.EXT.TextureSwizzle

-- | Is the <a>EXT_texture_swizzle</a> extension supported?
glGetEXTTextureSwizzle :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_swizzle</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureSwizzle</a> in those cases
--   instead.
gl_EXT_texture_swizzle :: Bool


module Graphics.GL.EXT.TextureSharedExponent

-- | Is the <a>EXT_texture_shared_exponent</a> extension supported?
glGetEXTTextureSharedExponent :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_shared_exponent</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTTextureSharedExponent</a> in those
--   cases instead.
gl_EXT_texture_shared_exponent :: Bool


module Graphics.GL.EXT.TextureSRGBDecode

-- | Is the <a>EXT_texture_sRGB_decode</a> extension supported?
glGetEXTTextureSRGBDecode :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_sRGB_decode</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureSRGBDecode</a> in those cases
--   instead.
gl_EXT_texture_sRGB_decode :: Bool


module Graphics.GL.EXT.TextureSRGB

-- | Is the <a>EXT_texture_sRGB</a> extension supported?
glGetEXTTextureSRGB :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_sRGB</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTTextureSRGB</a> in those cases instead.
gl_EXT_texture_sRGB :: Bool


module Graphics.GL.EXT.TextureSNorm

-- | Is the <a>EXT_texture_snorm</a> extension supported?
glGetEXTTextureSNorm :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_snorm</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTTextureSNorm</a> in those cases instead.
gl_EXT_texture_snorm :: Bool


module Graphics.GL.EXT.TexturePerturbNormal

-- | Is the <a>EXT_texture_perturb_normal</a> extension supported?
glGetEXTTexturePerturbNormal :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_perturb_normal</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTTexturePerturbNormal</a> in those
--   cases instead.
gl_EXT_texture_perturb_normal :: Bool
glTextureNormalEXT :: MonadIO m => GLenum -> m ()


module Graphics.GL.EXT.TextureObject

-- | Is the <a>EXT_texture_object</a> extension supported?
glGetEXTTextureObject :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_object</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTTextureObject</a> in those cases instead.
gl_EXT_texture_object :: Bool
glAreTexturesResidentEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | This command is an alias for <a>glBindTexture</a>.
glBindTextureEXT :: MonadIO m => GLenum -> GLuint -> m ()
glDeleteTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glIsTextureEXT :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glPrioritizeTextures</a>.
glPrioritizeTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLclampf -> m ()


module Graphics.GL.EXT.TextureMirrorClamp

-- | Is the <a>EXT_texture_mirror_clamp</a> extension supported?
glGetEXTTextureMirrorClamp :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_mirror_clamp</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureMirrorClamp</a> in those cases
--   instead.
gl_EXT_texture_mirror_clamp :: Bool


module Graphics.GL.EXT.TextureLODBias

-- | Is the <a>EXT_texture_lod_bias</a> extension supported?
glGetEXTTextureLODBias :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_lod_bias</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureLODBias</a> in those cases
--   instead.
gl_EXT_texture_lod_bias :: Bool


module Graphics.GL.EXT.TextureInteger

-- | Is the <a>EXT_texture_integer</a> extension supported?
glGetEXTTextureInteger :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_integer</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureInteger</a> in those cases
--   instead.
gl_EXT_texture_integer :: Bool
glClearColorIiEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glClearColorIuiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glGetTexParameterIiv</a>.
glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetTexParameterIuiv</a>.
glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glTexParameterIiv</a>.
glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glTexParameterIuiv</a>.
glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()


module Graphics.GL.EXT.TextureFilterMinmax

-- | Is the <a>EXT_texture_filter_minmax</a> extension supported?
glGetEXTTextureFilterMinmax :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_filter_minmax</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureFilterMinmax</a> in those cases
--   instead.
gl_EXT_texture_filter_minmax :: Bool
glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()


module Graphics.GL.EXT.TextureFilterAnisotropic

-- | Is the <a>EXT_texture_filter_anisotropic</a> extension supported?
glGetEXTTextureFilterAnisotropic :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_filter_anisotropic</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTTextureFilterAnisotropic</a> in
--   those cases instead.
gl_EXT_texture_filter_anisotropic :: Bool


module Graphics.GL.EXT.TextureEnvDot3

-- | Is the <a>EXT_texture_env_dot3</a> extension supported?
glGetEXTTextureEnvDot3 :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_env_dot3</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureEnvDot3</a> in those cases
--   instead.
gl_EXT_texture_env_dot3 :: Bool


module Graphics.GL.EXT.TextureEnvCombine

-- | Is the <a>EXT_texture_env_combine</a> extension supported?
glGetEXTTextureEnvCombine :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_env_combine</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureEnvCombine</a> in those cases
--   instead.
gl_EXT_texture_env_combine :: Bool


module Graphics.GL.EXT.TextureCubeMap

-- | Is the <a>EXT_texture_cube_map</a> extension supported?
glGetEXTTextureCubeMap :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_cube_map</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureCubeMap</a> in those cases
--   instead.
gl_EXT_texture_cube_map :: Bool


module Graphics.GL.EXT.TextureCompressionS3TC

-- | Is the <a>EXT_texture_compression_s3tc</a> extension supported?
glGetEXTTextureCompressionS3TC :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_compression_s3tc</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTTextureCompressionS3TC</a> in
--   those cases instead.
gl_EXT_texture_compression_s3tc :: Bool


module Graphics.GL.EXT.TextureCompressionRGTC

-- | Is the <a>EXT_texture_compression_rgtc</a> extension supported?
glGetEXTTextureCompressionRGTC :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_compression_rgtc</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTTextureCompressionRGTC</a> in
--   those cases instead.
gl_EXT_texture_compression_rgtc :: Bool


module Graphics.GL.EXT.TextureCompressionLATC

-- | Is the <a>EXT_texture_compression_latc</a> extension supported?
glGetEXTTextureCompressionLATC :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_compression_latc</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTTextureCompressionLATC</a> in
--   those cases instead.
gl_EXT_texture_compression_latc :: Bool


module Graphics.GL.EXT.TextureBufferObject

-- | Is the <a>EXT_texture_buffer_object</a> extension supported?
glGetEXTTextureBufferObject :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_buffer_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTTextureBufferObject</a> in those cases
--   instead.
gl_EXT_texture_buffer_object :: Bool

-- | This command is an alias for <a>glTexBuffer</a>.
glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()


module Graphics.GL.EXT.TextureArray

-- | Is the <a>EXT_texture_array</a> extension supported?
glGetEXTTextureArray :: MonadIO m => m Bool

-- | Is the <a>EXT_texture_array</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTTextureArray</a> in those cases instead.
gl_EXT_texture_array :: Bool

-- | This command is an alias for <a>glFramebufferTextureLayer</a>.
glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()


module Graphics.GL.EXT.Texture3D

-- | Is the <a>EXT_texture3D</a> extension supported?
glGetEXTTexture3D :: MonadIO m => m Bool

-- | Is the <a>EXT_texture3D</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTTexture3D</a> in those cases instead.
gl_EXT_texture3D :: Bool

-- | This command is an alias for <a>glTexImage3D</a>.
glTexImage3DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glTexSubImage3D</a>.
glTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()


module Graphics.GL.EXT.Texture

-- | Is the <a>EXT_texture</a> extension supported?
glGetEXTTexture :: MonadIO m => m Bool

-- | Is the <a>EXT_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTTexture</a> in those cases instead.
gl_EXT_texture :: Bool


module Graphics.GL.EXT.Subtexture

-- | Is the <a>EXT_subtexture</a> extension supported?
glGetEXTSubtexture :: MonadIO m => m Bool

-- | Is the <a>EXT_subtexture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTSubtexture</a> in those cases instead.
gl_EXT_subtexture :: Bool

-- | This command is an alias for <a>glTexSubImage1D</a>.
glTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glTexSubImage2D</a>.
glTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()


module Graphics.GL.EXT.StencilWrap

-- | Is the <a>EXT_stencil_wrap</a> extension supported?
glGetEXTStencilWrap :: MonadIO m => m Bool

-- | Is the <a>EXT_stencil_wrap</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTStencilWrap</a> in those cases instead.
gl_EXT_stencil_wrap :: Bool


module Graphics.GL.EXT.StencilTwoSide

-- | Is the <a>EXT_stencil_two_side</a> extension supported?
glGetEXTStencilTwoSide :: MonadIO m => m Bool

-- | Is the <a>EXT_stencil_two_side</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTStencilTwoSide</a> in those cases
--   instead.
gl_EXT_stencil_two_side :: Bool
glActiveStencilFaceEXT :: MonadIO m => GLenum -> m ()


module Graphics.GL.EXT.StencilClearTag

-- | Is the <a>EXT_stencil_clear_tag</a> extension supported?
glGetEXTStencilClearTag :: MonadIO m => m Bool

-- | Is the <a>EXT_stencil_clear_tag</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTStencilClearTag</a> in those cases
--   instead.
gl_EXT_stencil_clear_tag :: Bool
glStencilClearTagEXT :: MonadIO m => GLsizei -> GLuint -> m ()


module Graphics.GL.EXT.SharedTexturePalette

-- | Is the <a>EXT_shared_texture_palette</a> extension supported?
glGetEXTSharedTexturePalette :: MonadIO m => m Bool

-- | Is the <a>EXT_shared_texture_palette</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTSharedTexturePalette</a> in those
--   cases instead.
gl_EXT_shared_texture_palette :: Bool


module Graphics.GL.EXT.ShaderImageLoadStore

-- | Is the <a>EXT_shader_image_load_store</a> extension supported?
glGetEXTShaderImageLoadStore :: MonadIO m => m Bool

-- | Is the <a>EXT_shader_image_load_store</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTShaderImageLoadStore</a> in those
--   cases instead.
gl_EXT_shader_image_load_store :: Bool
glBindImageTextureEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> m ()

-- | This command is an alias for <a>glMemoryBarrier</a>.
glMemoryBarrierEXT :: MonadIO m => GLbitfield -> m ()


module Graphics.GL.EXT.SeparateSpecularColor

-- | Is the <a>EXT_separate_specular_color</a> extension supported?
glGetEXTSeparateSpecularColor :: MonadIO m => m Bool

-- | Is the <a>EXT_separate_specular_color</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTSeparateSpecularColor</a> in those
--   cases instead.
gl_EXT_separate_specular_color :: Bool


module Graphics.GL.EXT.SeparateShaderObjects

-- | Is the <a>EXT_separate_shader_objects</a> extension supported?
glGetEXTSeparateShaderObjects :: MonadIO m => m Bool

-- | Is the <a>EXT_separate_shader_objects</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTSeparateShaderObjects</a> in those
--   cases instead.
gl_EXT_separate_shader_objects :: Bool
glActiveProgramEXT :: MonadIO m => GLuint -> m ()
glCreateShaderProgramEXT :: MonadIO m => GLenum -> Ptr GLchar -> m GLuint
glUseShaderProgramEXT :: MonadIO m => GLenum -> GLuint -> m ()


module Graphics.GL.EXT.SemaphoreWin32

-- | Is the <a>EXT_semaphore_win32</a> extension supported?
glGetEXTSemaphoreWin32 :: MonadIO m => m Bool

-- | Is the <a>EXT_semaphore_win32</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTSemaphoreWin32</a> in those cases
--   instead.
gl_EXT_semaphore_win32 :: Bool
glImportSemaphoreWin32HandleEXT :: MonadIO m => GLuint -> GLenum -> Ptr a -> m ()
glImportSemaphoreWin32NameEXT :: MonadIO m => GLuint -> GLenum -> Ptr a -> m ()


module Graphics.GL.EXT.SemaphoreFd

-- | Is the <a>EXT_semaphore_fd</a> extension supported?
glGetEXTSemaphoreFd :: MonadIO m => m Bool

-- | Is the <a>EXT_semaphore_fd</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTSemaphoreFd</a> in those cases instead.
gl_EXT_semaphore_fd :: Bool
glImportSemaphoreFdEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()


module Graphics.GL.EXT.Semaphore

-- | Is the <a>EXT_semaphore</a> extension supported?
glGetEXTSemaphore :: MonadIO m => m Bool

-- | Is the <a>EXT_semaphore</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTSemaphore</a> in those cases instead.
gl_EXT_semaphore :: Bool
glDeleteSemaphoresEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenSemaphoresEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGetSemaphoreParameterui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
glGetUnsignedBytei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLubyte -> m ()
glGetUnsignedBytevEXT :: MonadIO m => GLenum -> Ptr GLubyte -> m ()
glIsSemaphoreEXT :: MonadIO m => GLuint -> m GLboolean
glSemaphoreParameterui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
glSignalSemaphoreEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLuint -> GLuint -> Ptr GLuint -> Ptr GLenum -> m ()
glWaitSemaphoreEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLuint -> GLuint -> Ptr GLuint -> Ptr GLenum -> m ()


module Graphics.GL.EXT.SecondaryColor

-- | Is the <a>EXT_secondary_color</a> extension supported?
glGetEXTSecondaryColor :: MonadIO m => m Bool

-- | Is the <a>EXT_secondary_color</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTSecondaryColor</a> in those cases
--   instead.
gl_EXT_secondary_color :: Bool

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3bvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3b</a>.
glSecondaryColor3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | This command is an alias for <a>glSecondaryColor3bv</a>.
glSecondaryColor3bvEXT :: MonadIO m => Ptr GLbyte -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3dvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3d</a>.
glSecondaryColor3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glSecondaryColor3dv</a>.
glSecondaryColor3dvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3fvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3f</a>.
glSecondaryColor3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glSecondaryColor3fv</a>.
glSecondaryColor3fvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <tt>glSecondaryColor3ivEXT</tt>. This command is an alias for
--   <a>glSecondaryColor3i</a>.
glSecondaryColor3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glSecondaryColor3iv</a>.
glSecondaryColor3ivEXT :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3svEXT</a>. This command is an alias for
--   <a>glSecondaryColor3s</a>.
glSecondaryColor3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glSecondaryColor3sv</a>.
glSecondaryColor3svEXT :: MonadIO m => Ptr GLshort -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3ubvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3ub</a>.
glSecondaryColor3ubEXT :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | This command is an alias for <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ubvEXT :: MonadIO m => Ptr GLubyte -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3uivEXT</a>. This command is an alias for
--   <a>glSecondaryColor3ui</a>.
glSecondaryColor3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glSecondaryColor3uiv</a>.
glSecondaryColor3uivEXT :: MonadIO m => Ptr GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glSecondaryColor3usvEXT</a>. This command is an alias for
--   <a>glSecondaryColor3us</a>.
glSecondaryColor3usEXT :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | This command is an alias for <a>glSecondaryColor3usv</a>.
glSecondaryColor3usvEXT :: MonadIO m => Ptr GLushort -> m ()

-- | This command is an alias for <a>glSecondaryColorPointer</a>.
glSecondaryColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.EXT.RescaleNormal

-- | Is the <a>EXT_rescale_normal</a> extension supported?
glGetEXTRescaleNormal :: MonadIO m => m Bool

-- | Is the <a>EXT_rescale_normal</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTRescaleNormal</a> in those cases instead.
gl_EXT_rescale_normal :: Bool


module Graphics.GL.EXT.RasterMultisample

-- | Is the <a>EXT_raster_multisample</a> extension supported?
glGetEXTRasterMultisample :: MonadIO m => m Bool

-- | Is the <a>EXT_raster_multisample</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTRasterMultisample</a> in those cases
--   instead.
gl_EXT_raster_multisample :: Bool
glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()


module Graphics.GL.EXT.ProvokingVertex

-- | Is the <a>EXT_provoking_vertex</a> extension supported?
glGetEXTProvokingVertex :: MonadIO m => m Bool

-- | Is the <a>EXT_provoking_vertex</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTProvokingVertex</a> in those cases
--   instead.
gl_EXT_provoking_vertex :: Bool

-- | This command is an alias for <a>glProvokingVertex</a>.
glProvokingVertexEXT :: MonadIO m => GLenum -> m ()


module Graphics.GL.EXT.PolygonOffsetClamp

-- | Is the <a>EXT_polygon_offset_clamp</a> extension supported?
glGetEXTPolygonOffsetClamp :: MonadIO m => m Bool

-- | Is the <a>EXT_polygon_offset_clamp</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTPolygonOffsetClamp</a> in those cases
--   instead.
gl_EXT_polygon_offset_clamp :: Bool

-- | This command is an alias for <a>glPolygonOffsetClamp</a>.
glPolygonOffsetClampEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()


module Graphics.GL.EXT.PolygonOffset

-- | Is the <a>EXT_polygon_offset</a> extension supported?
glGetEXTPolygonOffset :: MonadIO m => m Bool

-- | Is the <a>EXT_polygon_offset</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTPolygonOffset</a> in those cases instead.
gl_EXT_polygon_offset :: Bool
glPolygonOffsetEXT :: MonadIO m => GLfloat -> GLfloat -> m ()


module Graphics.GL.EXT.PointParameters

-- | Is the <a>EXT_point_parameters</a> extension supported?
glGetEXTPointParameters :: MonadIO m => m Bool

-- | Is the <a>EXT_point_parameters</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTPointParameters</a> in those cases
--   instead.
gl_EXT_point_parameters :: Bool

-- | This command is an alias for <a>glPointParameterf</a>.
glPointParameterfEXT :: MonadIO m => GLenum -> GLfloat -> m ()

-- | This command is an alias for <a>glPointParameterfv</a>.
glPointParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()


module Graphics.GL.EXT.PixelTransform

-- | Is the <a>EXT_pixel_transform</a> extension supported?
glGetEXTPixelTransform :: MonadIO m => m Bool

-- | Is the <a>EXT_pixel_transform</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTPixelTransform</a> in those cases
--   instead.
gl_EXT_pixel_transform :: Bool
glGetPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glPixelTransformParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glPixelTransformParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.EXT.PixelBufferObject

-- | Is the <a>EXT_pixel_buffer_object</a> extension supported?
glGetEXTPixelBufferObject :: MonadIO m => m Bool

-- | Is the <a>EXT_pixel_buffer_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTPixelBufferObject</a> in those cases
--   instead.
gl_EXT_pixel_buffer_object :: Bool


module Graphics.GL.EXT.PalettedTexture

-- | Is the <a>EXT_paletted_texture</a> extension supported?
glGetEXTPalettedTexture :: MonadIO m => m Bool

-- | Is the <a>EXT_paletted_texture</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTPalettedTexture</a> in those cases
--   instead.
gl_EXT_paletted_texture :: Bool

-- | This command is an alias for <a>glColorTable</a>.
glColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glGetColorTable</a>.
glGetColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glGetColorTableParameterfv</a>.
glGetColorTableParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetColorTableParameteriv</a>.
glGetColorTableParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.EXT.PackedPixels

-- | Is the <a>EXT_packed_pixels</a> extension supported?
glGetEXTPackedPixels :: MonadIO m => m Bool

-- | Is the <a>EXT_packed_pixels</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTPackedPixels</a> in those cases instead.
gl_EXT_packed_pixels :: Bool


module Graphics.GL.EXT.PackedFloat

-- | Is the <a>EXT_packed_float</a> extension supported?
glGetEXTPackedFloat :: MonadIO m => m Bool

-- | Is the <a>EXT_packed_float</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTPackedFloat</a> in those cases instead.
gl_EXT_packed_float :: Bool


module Graphics.GL.EXT.PackedDepthStencil

-- | Is the <a>EXT_packed_depth_stencil</a> extension supported?
glGetEXTPackedDepthStencil :: MonadIO m => m Bool

-- | Is the <a>EXT_packed_depth_stencil</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTPackedDepthStencil</a> in those cases
--   instead.
gl_EXT_packed_depth_stencil :: Bool


module Graphics.GL.EXT.Multisample

-- | Is the <a>EXT_multisample</a> extension supported?
glGetEXTMultisample :: MonadIO m => m Bool

-- | Is the <a>EXT_multisample</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTMultisample</a> in those cases instead.
gl_EXT_multisample :: Bool
glSampleMaskEXT :: MonadIO m => GLclampf -> GLboolean -> m ()
glSamplePatternEXT :: MonadIO m => GLenum -> m ()


module Graphics.GL.EXT.MultiDrawArrays

-- | Is the <a>EXT_multi_draw_arrays</a> extension supported?
glGetEXTMultiDrawArrays :: MonadIO m => m Bool

-- | Is the <a>EXT_multi_draw_arrays</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTMultiDrawArrays</a> in those cases
--   instead.
gl_EXT_multi_draw_arrays :: Bool

-- | This command is an alias for <a>glMultiDrawArrays</a>.
glMultiDrawArraysEXT :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawElements</a>.
glMultiDrawElementsEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()


module Graphics.GL.EXT.MemoryObjectWin32

-- | Is the <a>EXT_memory_object_win32</a> extension supported?
glGetEXTMemoryObjectWin32 :: MonadIO m => m Bool

-- | Is the <a>EXT_memory_object_win32</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTMemoryObjectWin32</a> in those cases
--   instead.
gl_EXT_memory_object_win32 :: Bool
glImportMemoryWin32HandleEXT :: MonadIO m => GLuint -> GLuint64 -> GLenum -> Ptr a -> m ()
glImportMemoryWin32NameEXT :: MonadIO m => GLuint -> GLuint64 -> GLenum -> Ptr a -> m ()


module Graphics.GL.EXT.MemoryObjectFd

-- | Is the <a>EXT_memory_object_fd</a> extension supported?
glGetEXTMemoryObjectFd :: MonadIO m => m Bool

-- | Is the <a>EXT_memory_object_fd</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTMemoryObjectFd</a> in those cases
--   instead.
gl_EXT_memory_object_fd :: Bool
glImportMemoryFdEXT :: MonadIO m => GLuint -> GLuint64 -> GLenum -> GLint -> m ()


module Graphics.GL.EXT.MemoryObject

-- | Is the <a>EXT_memory_object</a> extension supported?
glGetEXTMemoryObject :: MonadIO m => m Bool

-- | Is the <a>EXT_memory_object</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTMemoryObject</a> in those cases instead.
gl_EXT_memory_object :: Bool
glBufferStorageMemEXT :: MonadIO m => GLenum -> GLsizeiptr -> GLuint -> GLuint64 -> m ()
glCreateMemoryObjectsEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteMemoryObjectsEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGetMemoryObjectParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetUnsignedBytei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLubyte -> m ()
glGetUnsignedBytevEXT :: MonadIO m => GLenum -> Ptr GLubyte -> m ()
glIsMemoryObjectEXT :: MonadIO m => GLuint -> m GLboolean
glMemoryObjectParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glNamedBufferStorageMemEXT :: MonadIO m => GLuint -> GLsizeiptr -> GLuint -> GLuint64 -> m ()
glTexStorageMem1DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> m ()
glTexStorageMem2DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> m ()
glTexStorageMem2DMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> m ()
glTexStorageMem3DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> m ()
glTexStorageMem3DMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> m ()
glTextureStorageMem1DEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> m ()
glTextureStorageMem2DEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> m ()
glTextureStorageMem2DMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> m ()
glTextureStorageMem3DEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> m ()
glTextureStorageMem3DMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> m ()


module Graphics.GL.EXT.LightTexture

-- | Is the <a>EXT_light_texture</a> extension supported?
glGetEXTLightTexture :: MonadIO m => m Bool

-- | Is the <a>EXT_light_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTLightTexture</a> in those cases instead.
gl_EXT_light_texture :: Bool
glApplyTextureEXT :: MonadIO m => GLenum -> m ()
glTextureLightEXT :: MonadIO m => GLenum -> m ()
glTextureMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()


module Graphics.GL.EXT.IndexMaterial

-- | Is the <a>EXT_index_material</a> extension supported?
glGetEXTIndexMaterial :: MonadIO m => m Bool

-- | Is the <a>EXT_index_material</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTIndexMaterial</a> in those cases instead.
gl_EXT_index_material :: Bool
glIndexMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()


module Graphics.GL.EXT.IndexFunc

-- | Is the <a>EXT_index_func</a> extension supported?
glGetEXTIndexFunc :: MonadIO m => m Bool

-- | Is the <a>EXT_index_func</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTIndexFunc</a> in those cases instead.
gl_EXT_index_func :: Bool
glIndexFuncEXT :: MonadIO m => GLenum -> GLclampf -> m ()


module Graphics.GL.EXT.IndexArrayFormats

-- | Is the <a>EXT_index_array_formats</a> extension supported?
glGetEXTIndexArrayFormats :: MonadIO m => m Bool

-- | Is the <a>EXT_index_array_formats</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTIndexArrayFormats</a> in those cases
--   instead.
gl_EXT_index_array_formats :: Bool


module Graphics.GL.EXT.Histogram

-- | Is the <a>EXT_histogram</a> extension supported?
glGetEXTHistogram :: MonadIO m => m Bool

-- | Is the <a>EXT_histogram</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTHistogram</a> in those cases instead.
gl_EXT_histogram :: Bool
glGetHistogramEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> m ()
glGetHistogramParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetHistogramParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMinmaxEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> m ()
glGetMinmaxParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMinmaxParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glHistogram</a>.
glHistogramEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()

-- | This command is an alias for <a>glMinmax</a>.
glMinmaxEXT :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()

-- | This command is an alias for <a>glResetHistogram</a>.
glResetHistogramEXT :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glResetMinmax</a>.
glResetMinmaxEXT :: MonadIO m => GLenum -> m ()


module Graphics.GL.EXT.GeometryShader4

-- | Is the <a>EXT_geometry_shader4</a> extension supported?
glGetEXTGeometryShader4 :: MonadIO m => m Bool

-- | Is the <a>EXT_geometry_shader4</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTGeometryShader4</a> in those cases
--   instead.
gl_EXT_geometry_shader4 :: Bool

-- | This command is an alias for <a>glProgramParameteri</a>.
glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()


module Graphics.GL.EXT.GPUShader4

-- | Is the <a>EXT_gpu_shader4</a> extension supported?
glGetEXTGPUShader4 :: MonadIO m => m Bool

-- | Is the <a>EXT_gpu_shader4</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTGPUShader4</a> in those cases instead.
gl_EXT_gpu_shader4 :: Bool

-- | This command is an alias for <a>glBindFragDataLocation</a>.
glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glGetFragDataLocation</a>.
glGetFragDataLocationEXT :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | This command is an alias for <a>glGetUniformuiv</a>.
glGetUniformuivEXT :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glUniform1ui</a>.
glUniform1uiEXT :: MonadIO m => GLint -> GLuint -> m ()

-- | This command is an alias for <a>glUniform1uiv</a>.
glUniform1uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glUniform2ui</a>.
glUniform2uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glUniform2uiv</a>.
glUniform2uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glUniform3ui</a>.
glUniform3uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glUniform3uiv</a>.
glUniform3uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glUniform4ui</a>.
glUniform4uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glUniform4uiv</a>.
glUniform4uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()


module Graphics.GL.EXT.GPUProgramParameters

-- | Is the <a>EXT_gpu_program_parameters</a> extension supported?
glGetEXTGPUProgramParameters :: MonadIO m => m Bool

-- | Is the <a>EXT_gpu_program_parameters</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTGPUProgramParameters</a> in those
--   cases instead.
gl_EXT_gpu_program_parameters :: Bool
glProgramEnvParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glProgramLocalParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()


module Graphics.GL.EXT.FramebufferSRGB

-- | Is the <a>EXT_framebuffer_sRGB</a> extension supported?
glGetEXTFramebufferSRGB :: MonadIO m => m Bool

-- | Is the <a>EXT_framebuffer_sRGB</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTFramebufferSRGB</a> in those cases
--   instead.
gl_EXT_framebuffer_sRGB :: Bool


module Graphics.GL.EXT.FramebufferObject

-- | Is the <a>EXT_framebuffer_object</a> extension supported?
glGetEXTFramebufferObject :: MonadIO m => m Bool

-- | Is the <a>EXT_framebuffer_object</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTFramebufferObject</a> in those cases
--   instead.
gl_EXT_framebuffer_object :: Bool
glBindFramebufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
glBindRenderbufferEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glCheckFramebufferStatus</a>.
glCheckFramebufferStatusEXT :: MonadIO m => GLenum -> m GLenum

-- | This command is an alias for <a>glDeleteFramebuffers</a>.
glDeleteFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDeleteRenderbuffers</a>.
glDeleteRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glFramebufferRenderbuffer</a>.
glFramebufferRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glFramebufferTexture1D</a>.
glFramebufferTexture1DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTexture2D</a>.
glFramebufferTexture2DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | This command is an alias for <a>glFramebufferTexture3D</a>.
glFramebufferTexture3DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glGenFramebuffers</a>.
glGenFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenRenderbuffers</a>.
glGenRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenerateMipmap</a>.
glGenerateMipmapEXT :: MonadIO m => GLenum -> m ()

-- | This command is an alias for
--   <a>glGetFramebufferAttachmentParameteriv</a>.
glGetFramebufferAttachmentParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetRenderbufferParameteriv</a>.
glGetRenderbufferParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glIsFramebuffer</a>.
glIsFramebufferEXT :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glIsRenderbuffer</a>.
glIsRenderbufferEXT :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glRenderbufferStorage</a>.
glRenderbufferStorageEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()


module Graphics.GL.EXT.FramebufferMultisampleBlitScaled

-- | Is the <a>EXT_framebuffer_multisample_blit_scaled</a> extension
--   supported?
glGetEXTFramebufferMultisampleBlitScaled :: MonadIO m => m Bool

-- | Is the <a>EXT_framebuffer_multisample_blit_scaled</a> extension
--   supported? Note that in the presence of multiple contexts with
--   different capabilities, this might be wrong. Use
--   <a>glGetEXTFramebufferMultisampleBlitScaled</a> in those cases
--   instead.
gl_EXT_framebuffer_multisample_blit_scaled :: Bool


module Graphics.GL.EXT.FramebufferMultisample

-- | Is the <a>EXT_framebuffer_multisample</a> extension supported?
glGetEXTFramebufferMultisample :: MonadIO m => m Bool

-- | Is the <a>EXT_framebuffer_multisample</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTFramebufferMultisample</a> in
--   those cases instead.
gl_EXT_framebuffer_multisample :: Bool

-- | This command is an alias for <a>glRenderbufferStorageMultisample</a>.
glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()


module Graphics.GL.EXT.FramebufferBlit

-- | Is the <a>EXT_framebuffer_blit</a> extension supported?
glGetEXTFramebufferBlit :: MonadIO m => m Bool

-- | Is the <a>EXT_framebuffer_blit</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTFramebufferBlit</a> in those cases
--   instead.
gl_EXT_framebuffer_blit :: Bool

-- | This command is an alias for <a>glBlitFramebuffer</a>.
glBlitFramebufferEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()


module Graphics.GL.EXT.FourTwoTwoPixels

-- | Is the <a>EXT_422_pixels</a> extension supported?
glGetEXTFourTwoTwoPixels :: MonadIO m => m Bool

-- | Is the <a>EXT_422_pixels</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTFourTwoTwoPixels</a> in those cases instead.
gl_EXT_422_pixels :: Bool


module Graphics.GL.EXT.FogCoord

-- | Is the <a>EXT_fog_coord</a> extension supported?
glGetEXTFogCoord :: MonadIO m => m Bool

-- | Is the <a>EXT_fog_coord</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTFogCoord</a> in those cases instead.
gl_EXT_fog_coord :: Bool

-- | This command is an alias for <a>glFogCoordPointer</a>.
glFogCoordPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | The vector equivalent of this command is <a>glFogCoorddvEXT</a>. This
--   command is an alias for <a>glFogCoordd</a>.
glFogCoorddEXT :: MonadIO m => GLdouble -> m ()

-- | This command is an alias for <a>glFogCoorddv</a>.
glFogCoorddvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glFogCoordfvEXT</a>. This
--   command is an alias for <a>glFogCoordf</a>.
glFogCoordfEXT :: MonadIO m => GLfloat -> m ()

-- | This command is an alias for <a>glFogCoordfv</a>.
glFogCoordfvEXT :: MonadIO m => Ptr GLfloat -> m ()


module Graphics.GL.EXT.ExternalBuffer

-- | Is the <a>EXT_external_buffer</a> extension supported?
glGetEXTExternalBuffer :: MonadIO m => m Bool

-- | Is the <a>EXT_external_buffer</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTExternalBuffer</a> in those cases
--   instead.
gl_EXT_external_buffer :: Bool
glBufferStorageExternalEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> m ()
glNamedBufferStorageExternalEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> m ()


module Graphics.GL.EXT.DrawRangeElements

-- | Is the <a>EXT_draw_range_elements</a> extension supported?
glGetEXTDrawRangeElements :: MonadIO m => m Bool

-- | Is the <a>EXT_draw_range_elements</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTDrawRangeElements</a> in those cases
--   instead.
gl_EXT_draw_range_elements :: Bool

-- | This command is an alias for <a>glDrawRangeElements</a>.
glDrawRangeElementsEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()


module Graphics.GL.EXT.DrawInstanced

-- | Is the <a>EXT_draw_instanced</a> extension supported?
glGetEXTDrawInstanced :: MonadIO m => m Bool

-- | Is the <a>EXT_draw_instanced</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTDrawInstanced</a> in those cases instead.
gl_EXT_draw_instanced :: Bool

-- | This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()


module Graphics.GL.EXT.DrawBuffers2

-- | Is the <a>EXT_draw_buffers2</a> extension supported?
glGetEXTDrawBuffers2 :: MonadIO m => m Bool

-- | Is the <a>EXT_draw_buffers2</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTDrawBuffers2</a> in those cases instead.
gl_EXT_draw_buffers2 :: Bool

-- | This command is an alias for <a>glColorMaski</a>.
glColorMaskIndexedEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | This command is an alias for <a>glDisablei</a>.
glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glEnablei</a>.
glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glGetBooleani_v</a>.
glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | This command is an alias for <a>glGetIntegeri_v</a>.
glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glIsEnabledi</a>.
glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean


module Graphics.GL.EXT.DirectStateAccess

-- | Is the <a>EXT_direct_state_access</a> extension supported?
glGetEXTDirectStateAccess :: MonadIO m => m Bool

-- | Is the <a>EXT_direct_state_access</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTDirectStateAccess</a> in those cases
--   instead.
gl_EXT_direct_state_access :: Bool
glBindMultiTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glCheckNamedFramebufferStatusEXT :: MonadIO m => GLuint -> GLenum -> m GLenum
glClearNamedBufferDataEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()
glClearNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()
glClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
glCompressedMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()
glCompressedTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCompressedTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()
glCopyMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
glCopyMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
glCopyMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
glCopyMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
glCopyTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
glCopyTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
glCopyTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glDisableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glDisableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glDisablei</a>.
glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glDisableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
glDisableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
glEnableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glEnableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glEnablei</a>.
glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glEnableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
glEnableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
glFlushMappedNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
glFramebufferDrawBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
glFramebufferDrawBuffersEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
glFramebufferReadBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
glGenerateMultiTexMipmapEXT :: MonadIO m => GLenum -> GLenum -> m ()
glGenerateTextureMipmapEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | This command is an alias for <a>glGetBooleani_v</a>.
glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
glGetCompressedMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr a -> m ()
glGetCompressedTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr a -> m ()

-- | This command is an alias for <a>glGetDoublei_v</a>.
glGetDoubleIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glGetDoublei_v</a>.
glGetDoublei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glGetFloati_v</a>.
glGetFloatIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetFloati_v</a>.
glGetFloati_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetIntegeri_v</a>.
glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
glGetMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glGetMultiTexLevelParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
glGetMultiTexLevelParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
glGetMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
glGetMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetNamedBufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedBufferPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()
glGetNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()
glGetNamedFramebufferAttachmentParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetNamedFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedProgramLocalParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
glGetNamedProgramLocalParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
glGetNamedProgramLocalParameterdvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetNamedProgramLocalParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr a -> m ()
glGetNamedProgramivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetNamedRenderbufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetPointerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr a) -> m ()
glGetPointeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr a) -> m ()
glGetTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glGetTextureLevelParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
glGetTextureLevelParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
glGetTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
glGetTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetVertexArrayIntegeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexArrayIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexArrayPointeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr (Ptr a) -> m ()
glGetVertexArrayPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glIsEnabledi</a>.
glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
glMapNamedBufferEXT :: MonadIO m => GLuint -> GLenum -> m (Ptr a)
glMapNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)
glMatrixFrustumEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixLoadIdentityEXT :: MonadIO m => GLenum -> m ()
glMatrixLoadTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixLoadTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixLoaddEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixLoadfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixMultTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixMultdEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMatrixMultfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMatrixOrthoEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixPopEXT :: MonadIO m => GLenum -> m ()
glMatrixPushEXT :: MonadIO m => GLenum -> m ()
glMatrixRotatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixRotatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glMatrixScaledEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixScalefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glMatrixTranslatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMatrixTranslatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glMultiTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordPointerEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | The vector equivalent of this command is <a>glMultiTexEnvfvEXT</a>.
glMultiTexEnvfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
glMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexEnvivEXT</a>.
glMultiTexEnviEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
glMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glMultiTexGendvEXT</a>.
glMultiTexGendEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLdouble -> m ()
glMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexGenfvEXT</a>.
glMultiTexGenfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
glMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexGenivEXT</a>.
glMultiTexGeniEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
glMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glMultiTexParameterfvEXT</a>.
glMultiTexParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
glMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glMultiTexParameterivEXT</a>.
glMultiTexParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
glMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glMultiTexRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glNamedBufferDataEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | This command is an alias for <a>glNamedBufferStorage</a>.
glNamedBufferStorageEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | This command is an alias for <a>glNamedBufferSubData</a>.
glNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()
glNamedCopyBufferSubDataEXT :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
glNamedFramebufferParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glNamedFramebufferRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
glNamedFramebufferTexture1DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glNamedFramebufferTexture2DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glNamedFramebufferTexture3DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glNamedFramebufferTextureEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
glNamedFramebufferTextureFaceEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()
glNamedFramebufferTextureLayerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glNamedProgramLocalParameter4dvEXT</a>.
glNamedProgramLocalParameter4dEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glNamedProgramLocalParameter4dvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glNamedProgramLocalParameter4fvEXT</a>.
glNamedProgramLocalParameter4fEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glNamedProgramLocalParameter4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glNamedProgramLocalParameterI4ivEXT</a>.
glNamedProgramLocalParameterI4iEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glNamedProgramLocalParameterI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is
--   <a>glNamedProgramLocalParameterI4uivEXT</a>.
glNamedProgramLocalParameterI4uiEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glNamedProgramLocalParameterI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
glNamedProgramLocalParameters4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glNamedProgramLocalParametersI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
glNamedProgramLocalParametersI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
glNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glNamedRenderbufferStorageEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
glNamedRenderbufferStorageMultisampleCoverageEXT :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glNamedRenderbufferStorageMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glProgramUniform1dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniform1f</a>.
glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform1fv</a>.
glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <tt>glProgramUniform1i</tt>.
glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glProgramUniform1iv</a>.
glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glProgramUniform1ui</a>.
glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | This command is an alias for <a>glProgramUniform1uiv</a>.
glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniform2f</a>.
glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform2fv</a>.
glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform2i</a>.
glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glProgramUniform2iv</a>.
glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glProgramUniform2ui</a>.
glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glProgramUniform2uiv</a>.
glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniform3f</a>.
glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform3fv</a>.
glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform3i</a>.
glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glProgramUniform3iv</a>.
glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glProgramUniform3ui</a>.
glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glProgramUniform3uiv</a>.
glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniform4f</a>.
glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform4fv</a>.
glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glProgramUniform4i</a>.
glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glProgramUniform4iv</a>.
glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glProgramUniform4ui</a>.
glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | This command is an alias for <a>glProgramUniform4uiv</a>.
glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix2fv</a>.
glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix2x3fv</a>.
glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix2x4fv</a>.
glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix3fv</a>.
glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix3x2fv</a>.
glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix3x4fv</a>.
glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix4fv</a>.
glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix4x2fv</a>.
glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glProgramUniformMatrix4x3fv</a>.
glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glPushClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
glTextureBufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
glTextureBufferRangeEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
glTexturePageCommitmentEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()

-- | The vector equivalent of this command is
--   <a>glTextureParameterfvEXT</a>.
glTextureParameterfEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLfloat -> m ()
glTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glTextureParameterivEXT</a>.
glTextureParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLint -> m ()
glTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glTextureRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glTextureStorage2DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
glTextureStorage3DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()
glUnmapNamedBufferEXT :: MonadIO m => GLuint -> m GLboolean
glVertexArrayBindVertexBufferEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
glVertexArrayColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayEdgeFlagOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> GLintptr -> m ()
glVertexArrayFogCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayIndexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayMultiTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayNormalOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArraySecondaryColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayVertexAttribBindingEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexArrayVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexArrayVertexAttribFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexArrayVertexAttribIFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexArrayVertexAttribIOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayVertexAttribLFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexArrayVertexAttribLOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
glVertexArrayVertexAttribOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
glVertexArrayVertexBindingDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexArrayVertexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()


module Graphics.GL.EXT.DepthBoundsTest

-- | Is the <a>EXT_depth_bounds_test</a> extension supported?
glGetEXTDepthBoundsTest :: MonadIO m => m Bool

-- | Is the <a>EXT_depth_bounds_test</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTDepthBoundsTest</a> in those cases
--   instead.
gl_EXT_depth_bounds_test :: Bool
glDepthBoundsEXT :: MonadIO m => GLclampd -> GLclampd -> m ()


module Graphics.GL.EXT.DebugMarker

-- | Is the <a>EXT_debug_marker</a> extension supported?
glGetEXTDebugMarker :: MonadIO m => m Bool

-- | Is the <a>EXT_debug_marker</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTDebugMarker</a> in those cases instead.
gl_EXT_debug_marker :: Bool
glInsertEventMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
glPopGroupMarkerEXT :: MonadIO m => m ()
glPushGroupMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()


module Graphics.GL.EXT.DebugLabel

-- | Is the <a>EXT_debug_label</a> extension supported?
glGetEXTDebugLabel :: MonadIO m => m Bool

-- | Is the <a>EXT_debug_label</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTDebugLabel</a> in those cases instead.
gl_EXT_debug_label :: Bool
glGetObjectLabelEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glLabelObjectEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()


module Graphics.GL.EXT.CullVertex

-- | Is the <a>EXT_cull_vertex</a> extension supported?
glGetEXTCullVertex :: MonadIO m => m Bool

-- | Is the <a>EXT_cull_vertex</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTCullVertex</a> in those cases instead.
gl_EXT_cull_vertex :: Bool
glCullParameterdvEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glCullParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()


module Graphics.GL.EXT.CopyTexture

-- | Is the <a>EXT_copy_texture</a> extension supported?
glGetEXTCopyTexture :: MonadIO m => m Bool

-- | Is the <a>EXT_copy_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTCopyTexture</a> in those cases instead.
gl_EXT_copy_texture :: Bool

-- | This command is an alias for <a>glCopyTexImage1D</a>.
glCopyTexImage1DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | This command is an alias for <a>glCopyTexImage2D</a>.
glCopyTexImage2DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | This command is an alias for <a>glCopyTexSubImage1D</a>.
glCopyTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyTexSubImage2D</a>.
glCopyTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyTexSubImage3D</a>.
glCopyTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()


module Graphics.GL.EXT.CoordinateFrame

-- | Is the <a>EXT_coordinate_frame</a> extension supported?
glGetEXTCoordinateFrame :: MonadIO m => m Bool

-- | Is the <a>EXT_coordinate_frame</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTCoordinateFrame</a> in those cases
--   instead.
gl_EXT_coordinate_frame :: Bool

-- | The vector equivalent of this command is <a>glBinormal3bvEXT</a>.
glBinormal3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glBinormal3bvEXT :: MonadIO m => Ptr GLbyte -> m ()

-- | The vector equivalent of this command is <a>glBinormal3dvEXT</a>.
glBinormal3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glBinormal3dvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glBinormal3fvEXT</a>.
glBinormal3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glBinormal3fvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glBinormal3ivEXT</a>.
glBinormal3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
glBinormal3ivEXT :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glBinormal3svEXT</a>.
glBinormal3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glBinormal3svEXT :: MonadIO m => Ptr GLshort -> m ()
glBinormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | The vector equivalent of this command is <a>glTangent3bvEXT</a>.
glTangent3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glTangent3bvEXT :: MonadIO m => Ptr GLbyte -> m ()

-- | The vector equivalent of this command is <a>glTangent3dvEXT</a>.
glTangent3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glTangent3dvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glTangent3fvEXT</a>.
glTangent3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glTangent3fvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glTangent3ivEXT</a>.
glTangent3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
glTangent3ivEXT :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glTangent3svEXT</a>.
glTangent3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glTangent3svEXT :: MonadIO m => Ptr GLshort -> m ()
glTangentPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.EXT.Convolution

-- | Is the <a>EXT_convolution</a> extension supported?
glGetEXTConvolution :: MonadIO m => m Bool

-- | Is the <a>EXT_convolution</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTConvolution</a> in those cases instead.
gl_EXT_convolution :: Bool

-- | This command is an alias for <a>glConvolutionFilter1D</a>.
glConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glConvolutionFilter2D</a>.
glConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glConvolutionParameterf</a>.
glConvolutionParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | This command is an alias for <a>glConvolutionParameterfv</a>.
glConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glConvolutionParameteri</a>.
glConvolutionParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | This command is an alias for <a>glConvolutionParameteriv</a>.
glConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glCopyConvolutionFilter1D</a>.
glCopyConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | This command is an alias for <a>glCopyConvolutionFilter2D</a>.
glCopyConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glGetConvolutionFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()
glGetConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetSeparableFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> m ()

-- | This command is an alias for <a>glSeparableFilter2D</a>.
glSeparableFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> Ptr b -> m ()


module Graphics.GL.EXT.CompiledVertexArray

-- | Is the <a>EXT_compiled_vertex_array</a> extension supported?
glGetEXTCompiledVertexArray :: MonadIO m => m Bool

-- | Is the <a>EXT_compiled_vertex_array</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTCompiledVertexArray</a> in those cases
--   instead.
gl_EXT_compiled_vertex_array :: Bool
glLockArraysEXT :: MonadIO m => GLint -> GLsizei -> m ()
glUnlockArraysEXT :: MonadIO m => m ()


module Graphics.GL.EXT.ColorSubtable

-- | Is the <a>EXT_color_subtable</a> extension supported?
glGetEXTColorSubtable :: MonadIO m => m Bool

-- | Is the <a>EXT_color_subtable</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTColorSubtable</a> in those cases instead.
gl_EXT_color_subtable :: Bool

-- | This command is an alias for <a>glColorSubTable</a>.
glColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | This command is an alias for <a>glCopyColorSubTable</a>.
glCopyColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()


module Graphics.GL.EXT.ClipVolumeHint

-- | Is the <a>EXT_clip_volume_hint</a> extension supported?
glGetEXTClipVolumeHint :: MonadIO m => m Bool

-- | Is the <a>EXT_clip_volume_hint</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTClipVolumeHint</a> in those cases
--   instead.
gl_EXT_clip_volume_hint :: Bool


module Graphics.GL.EXT.CMYKA

-- | Is the <a>EXT_cmyka</a> extension supported?
glGetEXTCMYKA :: MonadIO m => m Bool

-- | Is the <a>EXT_cmyka</a> extension supported? Note that in the presence
--   of multiple contexts with different capabilities, this might be wrong.
--   Use <a>glGetEXTCMYKA</a> in those cases instead.
gl_EXT_cmyka :: Bool


module Graphics.GL.EXT.BlendSubtract

-- | Is the <a>EXT_blend_subtract</a> extension supported?
glGetEXTBlendSubtract :: MonadIO m => m Bool

-- | Is the <a>EXT_blend_subtract</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTBlendSubtract</a> in those cases instead.
gl_EXT_blend_subtract :: Bool


module Graphics.GL.EXT.BlendMinmax

-- | Is the <a>EXT_blend_minmax</a> extension supported?
glGetEXTBlendMinmax :: MonadIO m => m Bool

-- | Is the <a>EXT_blend_minmax</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTBlendMinmax</a> in those cases instead.
gl_EXT_blend_minmax :: Bool

-- | This command is an alias for <a>glBlendEquation</a>.
glBlendEquationEXT :: MonadIO m => GLenum -> m ()


module Graphics.GL.EXT.BlendFuncSeparate

-- | Is the <a>EXT_blend_func_separate</a> extension supported?
glGetEXTBlendFuncSeparate :: MonadIO m => m Bool

-- | Is the <a>EXT_blend_func_separate</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTBlendFuncSeparate</a> in those cases
--   instead.
gl_EXT_blend_func_separate :: Bool

-- | This command is an alias for <a>glBlendFuncSeparate</a>.
glBlendFuncSeparateEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()


module Graphics.GL.EXT.BlendEquationSeparate

-- | Is the <a>EXT_blend_equation_separate</a> extension supported?
glGetEXTBlendEquationSeparate :: MonadIO m => m Bool

-- | Is the <a>EXT_blend_equation_separate</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetEXTBlendEquationSeparate</a> in those
--   cases instead.
gl_EXT_blend_equation_separate :: Bool

-- | This command is an alias for <a>glBlendEquationSeparate</a>.
glBlendEquationSeparateEXT :: MonadIO m => GLenum -> GLenum -> m ()


module Graphics.GL.EXT.BlendColor

-- | Is the <a>EXT_blend_color</a> extension supported?
glGetEXTBlendColor :: MonadIO m => m Bool

-- | Is the <a>EXT_blend_color</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetEXTBlendColor</a> in those cases instead.
gl_EXT_blend_color :: Bool

-- | This command is an alias for <a>glBlendColor</a>.
glBlendColorEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()


module Graphics.GL.EXT.BindableUniform

-- | Is the <a>EXT_bindable_uniform</a> extension supported?
glGetEXTBindableUniform :: MonadIO m => m Bool

-- | Is the <a>EXT_bindable_uniform</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetEXTBindableUniform</a> in those cases
--   instead.
gl_EXT_bindable_uniform :: Bool
glGetUniformBufferSizeEXT :: MonadIO m => GLuint -> GLint -> m GLint
glGetUniformOffsetEXT :: MonadIO m => GLuint -> GLint -> m GLintptr
glUniformBufferEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()


module Graphics.GL.EXT.BGRA

-- | Is the <a>EXT_bgra</a> extension supported?
glGetEXTBGRA :: MonadIO m => m Bool

-- | Is the <a>EXT_bgra</a> extension supported? Note that in the presence
--   of multiple contexts with different capabilities, this might be wrong.
--   Use <a>glGetEXTBGRA</a> in those cases instead.
gl_EXT_bgra :: Bool


module Graphics.GL.EXT.ABGR

-- | Is the <a>EXT_abgr</a> extension supported?
glGetEXTABGR :: MonadIO m => m Bool

-- | Is the <a>EXT_abgr</a> extension supported? Note that in the presence
--   of multiple contexts with different capabilities, this might be wrong.
--   Use <a>glGetEXTABGR</a> in those cases instead.
gl_EXT_abgr :: Bool


-- | A convenience module, combining all raw modules containing EXT
--   extensions.
module Graphics.GL.EXT


module Graphics.GL.Core46

-- | 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 ()

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glClipControl :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetGraphicsResetStatus :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnCompressedTexImage :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformdv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()
glMultiDrawArraysIndirectCount :: MonadIO m => GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()
glMultiDrawElementsIndirectCount :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
glPolygonOffsetClamp :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glSpecializeShader :: MonadIO m => GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBarrier :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.Core45

-- | 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 ()

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glClipControl :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetGraphicsResetStatus :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnCompressedTexImage :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformdv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBarrier :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.Core44

-- | 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 ()

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.Core43

-- | 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 ()

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.Core42

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.Core41

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.Core40

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.Core33

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.Core32

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.Core31

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Core30

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility46

-- | 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 ()

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glClipControl :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetGraphicsResetStatus :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetnColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnCompressedTexImage :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr a -> m ()
glGetnConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnMapdv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
glGetnMapfv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnMapiv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
glGetnMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glGetnPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
glGetnPolygonStipple :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
glGetnSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> GLsizei -> Ptr b -> Ptr c -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformdv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()
glMultiDrawArraysIndirectCount :: MonadIO m => GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()
glMultiDrawElementsIndirectCount :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
glPolygonOffsetClamp :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glSpecializeShader :: MonadIO m => GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBarrier :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility45

-- | 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 ()

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glClipControl :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetGraphicsResetStatus :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetnColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnCompressedTexImage :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr a -> m ()
glGetnConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnMapdv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
glGetnMapfv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnMapiv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
glGetnMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glGetnPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
glGetnPolygonStipple :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
glGetnSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> GLsizei -> Ptr b -> Ptr c -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformdv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBarrier :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility44

-- | 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 ()

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility43

-- | 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 ()

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glObjectPtrLabel :: MonadIO m => Ptr a -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPopDebugGroup :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility42

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility41

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility40

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility33

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility32

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | 64bit signed two's complement binary integer.
type GLint64 = Int64

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | Pointer-sized sync object handle.
type GLsync = Ptr ()

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 64bit unsigned binary integer.
type GLuint64 = Word64

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility31

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.Compatibility30

-- | 32bit bit field.
type GLbitfield = Word32

-- | 8bit boolean.
type GLboolean = Word8

-- | 8bit signed two's complement binary integer.
type GLbyte = Int8

-- | 8bit characters making up strings.
type GLchar = CChar

-- | 64bit floating-point value clamped to [0, 1].
type GLclampd = Double

-- | 32bit floating-point value clamped to [0, 1].
type GLclampf = Float

-- | 64bit floating-point value.
type GLdouble = Double

-- | 32bit enumerated binary integer value.
type GLenum = Word32

-- | 32bit floating-point value.
type GLfloat = Float

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half

-- | 32bit signed two's complement binary integer.
type GLint = Int32

-- | Pointer-sized signed two's complement binary integer.
type GLintptr = CPtrdiff

-- | 16bit signed two's complement binary integer.
type GLshort = Int16

-- | 32bit non-negative binary integer size.
type GLsizei = Int32

-- | Pointer-sized non-negative binary integer size.
type GLsizeiptr = CPtrdiff

-- | 8bit unsigned binary integer.
type GLubyte = Word8

-- | 32bit unsigned binary integer.
type GLuint = Word32

-- | 16bit unsigned binary integer.
type GLushort = Word16

-- | Not an actual GL type, though used in headers in the past.
type GLvoid = ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glArrayElement :: MonadIO m => GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClear :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glClearStencil :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateProgram :: MonadIO m => m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glCullFace :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnable :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEnd :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndConditionalRender :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEndList :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glEndTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFinish :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFlush :: MonadIO m => m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetError :: MonadIO m => m GLenum

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 4.x</a>.
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInitNames :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadIdentity :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glMultiTexCoord4sv</tt>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glNormal3dv</tt>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopClientAttrib :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPopName :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushMatrix :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glSecondaryColor3iv</tt>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <tt>glVertex2fv</tt>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>. The vector equivalent of this command is
--   <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <tt>glVertexAttribI3iv</tt>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>. The vector
--   equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>. The vector equivalent of this
--   command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.ATI.VertexStreams

-- | Is the <a>ATI_vertex_streams</a> extension supported?
glGetATIVertexStreams :: MonadIO m => m Bool

-- | Is the <a>ATI_vertex_streams</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetATIVertexStreams</a> in those cases instead.
gl_ATI_vertex_streams :: Bool
glClientActiveVertexStreamATI :: MonadIO m => GLenum -> m ()
glNormalStream3bATI :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
glNormalStream3bvATI :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
glNormalStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glNormalStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glNormalStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glNormalStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glNormalStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
glNormalStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glNormalStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
glNormalStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glVertexBlendEnvfATI :: MonadIO m => GLenum -> GLfloat -> m ()
glVertexBlendEnviATI :: MonadIO m => GLenum -> GLint -> m ()
glVertexStream1dATI :: MonadIO m => GLenum -> GLdouble -> m ()
glVertexStream1dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glVertexStream1fATI :: MonadIO m => GLenum -> GLfloat -> m ()
glVertexStream1fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glVertexStream1iATI :: MonadIO m => GLenum -> GLint -> m ()
glVertexStream1ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glVertexStream1sATI :: MonadIO m => GLenum -> GLshort -> m ()
glVertexStream1svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glVertexStream2dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
glVertexStream2dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glVertexStream2fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
glVertexStream2fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glVertexStream2iATI :: MonadIO m => GLenum -> GLint -> GLint -> m ()
glVertexStream2ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glVertexStream2sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
glVertexStream2svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glVertexStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glVertexStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glVertexStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
glVertexStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glVertexStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
glVertexStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glVertexStream4dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexStream4dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glVertexStream4fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexStream4fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glVertexStream4iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
glVertexStream4ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glVertexStream4sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glVertexStream4svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()


module Graphics.GL.ATI.VertexAttribArrayObject

-- | Is the <a>ATI_vertex_attrib_array_object</a> extension supported?
glGetATIVertexAttribArrayObject :: MonadIO m => m Bool

-- | Is the <a>ATI_vertex_attrib_array_object</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetATIVertexAttribArrayObject</a> in
--   those cases instead.
gl_ATI_vertex_attrib_array_object :: Bool
glGetVertexAttribArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVertexAttribArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glVertexAttribArrayObjectATI :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()


module Graphics.GL.ATI.VertexArrayObject

-- | Is the <a>ATI_vertex_array_object</a> extension supported?
glGetATIVertexArrayObject :: MonadIO m => m Bool

-- | Is the <a>ATI_vertex_array_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetATIVertexArrayObject</a> in those cases
--   instead.
gl_ATI_vertex_array_object :: Bool
glArrayObjectATI :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
glFreeObjectBufferATI :: MonadIO m => GLuint -> m ()
glGetArrayObjectfvATI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetArrayObjectivATI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetObjectBufferfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetObjectBufferivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVariantArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVariantArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glIsObjectBufferATI :: MonadIO m => GLuint -> m GLboolean
glNewObjectBufferATI :: MonadIO m => GLsizei -> Ptr a -> GLenum -> m GLuint
glUpdateObjectBufferATI :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr a -> GLenum -> m ()
glVariantArrayObjectATI :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()


module Graphics.GL.ATI.TextureMirrorOnce

-- | Is the <a>ATI_texture_mirror_once</a> extension supported?
glGetATITextureMirrorOnce :: MonadIO m => m Bool

-- | Is the <a>ATI_texture_mirror_once</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetATITextureMirrorOnce</a> in those cases
--   instead.
gl_ATI_texture_mirror_once :: Bool


module Graphics.GL.ATI.TextureFloat

-- | Is the <a>ATI_texture_float</a> extension supported?
glGetATITextureFloat :: MonadIO m => m Bool

-- | Is the <a>ATI_texture_float</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetATITextureFloat</a> in those cases instead.
gl_ATI_texture_float :: Bool


module Graphics.GL.ATI.TextureEnvCombine3

-- | Is the <a>ATI_texture_env_combine3</a> extension supported?
glGetATITextureEnvCombine3 :: MonadIO m => m Bool

-- | Is the <a>ATI_texture_env_combine3</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetATITextureEnvCombine3</a> in those cases
--   instead.
gl_ATI_texture_env_combine3 :: Bool


module Graphics.GL.ATI.TextFragmentShader

-- | Is the <a>ATI_text_fragment_shader</a> extension supported?
glGetATITextFragmentShader :: MonadIO m => m Bool

-- | Is the <a>ATI_text_fragment_shader</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetATITextFragmentShader</a> in those cases
--   instead.
gl_ATI_text_fragment_shader :: Bool


module Graphics.GL.ATI.SeparateStencil

-- | Is the <a>ATI_separate_stencil</a> extension supported?
glGetATISeparateStencil :: MonadIO m => m Bool

-- | Is the <a>ATI_separate_stencil</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetATISeparateStencil</a> in those cases
--   instead.
gl_ATI_separate_stencil :: Bool
glStencilFuncSeparateATI :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | This command is an alias for <a>glStencilOpSeparate</a>.
glStencilOpSeparateATI :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()


module Graphics.GL.ATI.PixelFormatFloat

-- | Is the <a>ATI_pixel_format_float</a> extension supported?
glGetATIPixelFormatFloat :: MonadIO m => m Bool

-- | Is the <a>ATI_pixel_format_float</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetATIPixelFormatFloat</a> in those cases
--   instead.
gl_ATI_pixel_format_float :: Bool


module Graphics.GL.ATI.PNTriangles

-- | Is the <a>ATI_pn_triangles</a> extension supported?
glGetATIPNTriangles :: MonadIO m => m Bool

-- | Is the <a>ATI_pn_triangles</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetATIPNTriangles</a> in those cases instead.
gl_ATI_pn_triangles :: Bool
glPNTrianglesfATI :: MonadIO m => GLenum -> GLfloat -> m ()
glPNTrianglesiATI :: MonadIO m => GLenum -> GLint -> m ()


module Graphics.GL.ATI.Meminfo

-- | Is the <a>ATI_meminfo</a> extension supported?
glGetATIMeminfo :: MonadIO m => m Bool

-- | Is the <a>ATI_meminfo</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetATIMeminfo</a> in those cases instead.
gl_ATI_meminfo :: Bool


module Graphics.GL.ATI.MapObjectBuffer

-- | Is the <a>ATI_map_object_buffer</a> extension supported?
glGetATIMapObjectBuffer :: MonadIO m => m Bool

-- | Is the <a>ATI_map_object_buffer</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetATIMapObjectBuffer</a> in those cases
--   instead.
gl_ATI_map_object_buffer :: Bool
glMapObjectBufferATI :: MonadIO m => GLuint -> m (Ptr a)
glUnmapObjectBufferATI :: MonadIO m => GLuint -> m ()


module Graphics.GL.ATI.FragmentShader

-- | Is the <a>ATI_fragment_shader</a> extension supported?
glGetATIFragmentShader :: MonadIO m => m Bool

-- | Is the <a>ATI_fragment_shader</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetATIFragmentShader</a> in those cases
--   instead.
gl_ATI_fragment_shader :: Bool
glAlphaFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glAlphaFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glAlphaFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glBeginFragmentShaderATI :: MonadIO m => m ()
glBindFragmentShaderATI :: MonadIO m => GLuint -> m ()
glColorFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glColorFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glColorFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glDeleteFragmentShaderATI :: MonadIO m => GLuint -> m ()
glEndFragmentShaderATI :: MonadIO m => m ()
glGenFragmentShadersATI :: MonadIO m => GLuint -> m GLuint
glPassTexCoordATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
glSampleMapATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
glSetFragmentShaderConstantATI :: MonadIO m => GLuint -> Ptr GLfloat -> m ()


module Graphics.GL.ATI.EnvmapBumpmap

-- | Is the <a>ATI_envmap_bumpmap</a> extension supported?
glGetATIEnvmapBumpmap :: MonadIO m => m Bool

-- | Is the <a>ATI_envmap_bumpmap</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetATIEnvmapBumpmap</a> in those cases instead.
gl_ATI_envmap_bumpmap :: Bool
glGetTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
glTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()


module Graphics.GL.ATI.ElementArray

-- | Is the <a>ATI_element_array</a> extension supported?
glGetATIElementArray :: MonadIO m => m Bool

-- | Is the <a>ATI_element_array</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetATIElementArray</a> in those cases instead.
gl_ATI_element_array :: Bool
glDrawElementArrayATI :: MonadIO m => GLenum -> GLsizei -> m ()
glDrawRangeElementArrayATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
glElementPointerATI :: MonadIO m => GLenum -> Ptr a -> m ()


module Graphics.GL.ATI.DrawBuffers

-- | Is the <a>ATI_draw_buffers</a> extension supported?
glGetATIDrawBuffers :: MonadIO m => m Bool

-- | Is the <a>ATI_draw_buffers</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetATIDrawBuffers</a> in those cases instead.
gl_ATI_draw_buffers :: Bool

-- | This command is an alias for <a>glDrawBuffers</a>.
glDrawBuffersATI :: MonadIO m => GLsizei -> Ptr GLenum -> m ()


-- | A convenience module, combining all raw modules containing ATI
--   extensions.
module Graphics.GL.ATI


module Graphics.GL.ARB.WindowPos

-- | Is the <a>ARB_window_pos</a> extension supported?
glGetARBWindowPos :: MonadIO m => m Bool

-- | Is the <a>ARB_window_pos</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBWindowPos</a> in those cases instead.
gl_ARB_window_pos :: Bool

-- | The vector equivalent of this command is <a>glWindowPos2dvARB</a>.
--   This command is an alias for <a>glWindowPos2d</a>.
glWindowPos2dARB :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glWindowPos2dv</a>.
glWindowPos2dvARB :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2fvARB</a>.
--   This command is an alias for <a>glWindowPos2f</a>.
glWindowPos2fARB :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glWindowPos2fv</a>.
glWindowPos2fvARB :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2ivARB</a>.
--   This command is an alias for <a>glWindowPos2i</a>.
glWindowPos2iARB :: MonadIO m => GLint -> GLint -> m ()

-- | This command is an alias for <a>glWindowPos2iv</a>.
glWindowPos2ivARB :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos2svARB</a>.
--   This command is an alias for <a>glWindowPos2s</a>.
glWindowPos2sARB :: MonadIO m => GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glWindowPos2sv</a>.
glWindowPos2svARB :: MonadIO m => Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3dvARB</a>.
--   This command is an alias for <a>glWindowPos3d</a>.
glWindowPos3dARB :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glWindowPos3dv</a>.
glWindowPos3dvARB :: MonadIO m => Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3fvARB</a>.
--   This command is an alias for <a>glWindowPos3f</a>.
glWindowPos3fARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glWindowPos3fv</a>.
glWindowPos3fvARB :: MonadIO m => Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3ivARB</a>.
--   This command is an alias for <a>glWindowPos3i</a>.
glWindowPos3iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glWindowPos3iv</a>.
glWindowPos3ivARB :: MonadIO m => Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glWindowPos3svARB</a>.
--   This command is an alias for <a>glWindowPos3s</a>.
glWindowPos3sARB :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glWindowPos3sv</a>.
glWindowPos3svARB :: MonadIO m => Ptr GLshort -> m ()


module Graphics.GL.ARB.ViewportArray

-- | Is the <a>ARB_viewport_array</a> extension supported?
glGetARBViewportArray :: MonadIO m => m Bool

-- | Is the <a>ARB_viewport_array</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBViewportArray</a> in those cases instead.
gl_ARB_viewport_array :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()


module Graphics.GL.ARB.VertexType2101010RevCore

-- | Is the <a>ARB_vertex_type_2_10_10_10_rev</a> extension supported?
glGetARBVertexType2101010Rev :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_type_2_10_10_10_rev</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBVertexType2101010Rev</a> in those
--   cases instead.
gl_ARB_vertex_type_2_10_10_10_rev :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()


module Graphics.GL.ARB.VertexType2101010RevCompatibility

-- | Is the <a>ARB_vertex_type_2_10_10_10_rev</a> extension supported?
glGetARBVertexType2101010Rev :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_type_2_10_10_10_rev</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBVertexType2101010Rev</a> in those
--   cases instead.
gl_ARB_vertex_type_2_10_10_10_rev :: Bool
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()


module Graphics.GL.ARB.VertexType10f11f11fRev

-- | Is the <a>ARB_vertex_type_10f_11f_11f_rev</a> extension supported?
glGetARBVertexType10f11f11fRev :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_type_10f_11f_11f_rev</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetARBVertexType10f11f11fRev</a> in those cases instead.
gl_ARB_vertex_type_10f_11f_11f_rev :: Bool


module Graphics.GL.ARB.VertexShader

-- | Is the <a>ARB_vertex_shader</a> extension supported?
glGetARBVertexShader :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_shader</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBVertexShader</a> in those cases instead.
gl_ARB_vertex_shader :: Bool

-- | This command is an alias for <a>glBindAttribLocation</a>.
glBindAttribLocationARB :: MonadIO m => GLhandleARB -> GLuint -> Ptr GLcharARB -> m ()

-- | This command is an alias for <a>glDisableVertexAttribArray</a>.
glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glEnableVertexAttribArray</a>.
glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glGetActiveAttrib</a>.
glGetActiveAttribARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()

-- | This command is an alias for <a>glGetAttribLocation</a>.
glGetAttribLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint

-- | This command is an alias for <a>glGetVertexAttribPointerv</a>.
glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetVertexAttribdv</a>.
glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glGetVertexAttribfv</a>.
glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetVertexAttribiv</a>.
glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1dvARB</a>.
--   This command is an alias for <a>glVertexAttrib1d</a>.
glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib1dv</a>.
glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1fvARB</a>.
--   This command is an alias for <a>glVertexAttrib1f</a>.
glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib1fv</a>.
glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1svARB</a>.
--   This command is an alias for <a>glVertexAttrib1s</a>.
glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib1sv</a>.
glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2dvARB</a>.
--   This command is an alias for <a>glVertexAttrib2d</a>.
glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib2dv</a>.
glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2fvARB</a>.
--   This command is an alias for <a>glVertexAttrib2f</a>.
glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib2fv</a>.
glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2svARB</a>.
--   This command is an alias for <a>glVertexAttrib2s</a>.
glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib2sv</a>.
glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3dvARB</a>.
--   This command is an alias for <a>glVertexAttrib3d</a>.
glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib3dv</a>.
glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3fvARB</a>.
--   This command is an alias for <a>glVertexAttrib3f</a>.
glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib3fv</a>.
glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3svARB</a>.
--   This command is an alias for <a>glVertexAttrib3s</a>.
glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib3sv</a>.
glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nbv</a>.
glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Niv</a>.
glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nsv</a>.
glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nub</a>.
glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nubv</a>.
glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nuiv</a>.
glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nusv</a>.
glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | This command is an alias for <a>glVertexAttrib4bv</a>.
glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4dvARB</a>.
--   This command is an alias for <a>glVertexAttrib4d</a>.
glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib4dv</a>.
glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4fvARB</a>.
--   This command is an alias for <a>glVertexAttrib4f</a>.
glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib4fv</a>.
glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib4iv</a>.
glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4svARB</a>.
--   This command is an alias for <a>glVertexAttrib4s</a>.
glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4sv</a>.
glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4ubv</a>.
glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4uiv</a>.
glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttrib4usv</a>.
glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | This command is an alias for <a>glVertexAttribPointer</a>.
glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()


module Graphics.GL.ARB.VertexProgram

-- | Is the <a>ARB_vertex_program</a> extension supported?
glGetARBVertexProgram :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_program</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBVertexProgram</a> in those cases instead.
gl_ARB_vertex_program :: Bool
glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glDisableVertexAttribArray</a>.
glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glEnableVertexAttribArray</a>.
glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()
glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetVertexAttribPointerv</a>.
glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetVertexAttribdv</a>.
glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | This command is an alias for <a>glGetVertexAttribfv</a>.
glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetVertexAttribiv</a>.
glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glIsProgramARB :: MonadIO m => GLuint -> m GLboolean

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameter4dvARB</a>.
glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameter4fvARB</a>.
glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameter4dvARB</a>.
glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameter4fvARB</a>.
glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1dvARB</a>.
--   This command is an alias for <a>glVertexAttrib1d</a>.
glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib1dv</a>.
glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1fvARB</a>.
--   This command is an alias for <a>glVertexAttrib1f</a>.
glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib1fv</a>.
glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib1svARB</a>.
--   This command is an alias for <a>glVertexAttrib1s</a>.
glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib1sv</a>.
glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2dvARB</a>.
--   This command is an alias for <a>glVertexAttrib2d</a>.
glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib2dv</a>.
glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2fvARB</a>.
--   This command is an alias for <a>glVertexAttrib2f</a>.
glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib2fv</a>.
glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib2svARB</a>.
--   This command is an alias for <a>glVertexAttrib2s</a>.
glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib2sv</a>.
glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3dvARB</a>.
--   This command is an alias for <a>glVertexAttrib3d</a>.
glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib3dv</a>.
glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3fvARB</a>.
--   This command is an alias for <a>glVertexAttrib3f</a>.
glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib3fv</a>.
glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib3svARB</a>.
--   This command is an alias for <a>glVertexAttrib3s</a>.
glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib3sv</a>.
glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nbv</a>.
glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Niv</a>.
glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nsv</a>.
glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nub</a>.
glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nubv</a>.
glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nuiv</a>.
glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttrib4Nusv</a>.
glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | This command is an alias for <a>glVertexAttrib4bv</a>.
glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4dvARB</a>.
--   This command is an alias for <a>glVertexAttrib4d</a>.
glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glVertexAttrib4dv</a>.
glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4fvARB</a>.
--   This command is an alias for <a>glVertexAttrib4f</a>.
glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib4fv</a>.
glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glVertexAttrib4iv</a>.
glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glVertexAttrib4svARB</a>.
--   This command is an alias for <a>glVertexAttrib4s</a>.
glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4sv</a>.
glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | This command is an alias for <a>glVertexAttrib4ubv</a>.
glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | This command is an alias for <a>glVertexAttrib4uiv</a>.
glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glVertexAttrib4usv</a>.
glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | This command is an alias for <a>glVertexAttribPointer</a>.
glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> m ()


module Graphics.GL.ARB.VertexBufferObject

-- | Is the <a>ARB_vertex_buffer_object</a> extension supported?
glGetARBVertexBufferObject :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_buffer_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBVertexBufferObject</a> in those cases
--   instead.
gl_ARB_vertex_buffer_object :: Bool

-- | This command is an alias for <a>glBindBuffer</a>.
glBindBufferARB :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glBufferData</a>.
glBufferDataARB :: MonadIO m => GLenum -> GLsizeiptrARB -> Ptr a -> GLenum -> m ()

-- | This command is an alias for <a>glBufferSubData</a>.
glBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr a -> m ()

-- | This command is an alias for <a>glDeleteBuffers</a>.
glDeleteBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenBuffers</a>.
glGenBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetBufferParameteriv</a>.
glGetBufferParameterivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetBufferPointerv</a>.
glGetBufferPointervARB :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()

-- | This command is an alias for <a>glGetBufferSubData</a>.
glGetBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr a -> m ()

-- | This command is an alias for <a>glIsBuffer</a>.
glIsBufferARB :: MonadIO m => GLuint -> m GLboolean

-- | This command is an alias for <a>glMapBuffer</a>.
glMapBufferARB :: MonadIO m => GLenum -> GLenum -> m (Ptr a)

-- | This command is an alias for <a>glUnmapBuffer</a>.
glUnmapBufferARB :: MonadIO m => GLenum -> m GLboolean


module Graphics.GL.ARB.VertexBlend

-- | Is the <a>ARB_vertex_blend</a> extension supported?
glGetARBVertexBlend :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_blend</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBVertexBlend</a> in those cases instead.
gl_ARB_vertex_blend :: Bool
glVertexBlendARB :: MonadIO m => GLint -> m ()
glWeightPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glWeightbvARB :: MonadIO m => GLint -> Ptr GLbyte -> m ()
glWeightdvARB :: MonadIO m => GLint -> Ptr GLdouble -> m ()
glWeightfvARB :: MonadIO m => GLint -> Ptr GLfloat -> m ()
glWeightivARB :: MonadIO m => GLint -> Ptr GLint -> m ()
glWeightsvARB :: MonadIO m => GLint -> Ptr GLshort -> m ()
glWeightubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
glWeightuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
glWeightusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()


module Graphics.GL.ARB.VertexAttribBinding

-- | Is the <a>ARB_vertex_attrib_binding</a> extension supported?
glGetARBVertexAttribBinding :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_attrib_binding</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBVertexAttribBinding</a> in those cases
--   instead.
gl_ARB_vertex_attrib_binding :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()


module Graphics.GL.ARB.VertexAttrib64Bit

-- | Is the <a>ARB_vertex_attrib_64bit</a> extension supported?
glGetARBVertexAttrib64Bit :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_attrib_64bit</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBVertexAttrib64Bit</a> in those cases
--   instead.
gl_ARB_vertex_attrib_64bit :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.ARB.VertexArrayObject

-- | Is the <a>ARB_vertex_array_object</a> extension supported?
glGetARBVertexArrayObject :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_array_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBVertexArrayObject</a> in those cases
--   instead.
gl_ARB_vertex_array_object :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean


module Graphics.GL.ARB.VertexArrayBGRA

-- | Is the <a>ARB_vertex_array_bgra</a> extension supported?
glGetARBVertexArrayBGRA :: MonadIO m => m Bool

-- | Is the <a>ARB_vertex_array_bgra</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBVertexArrayBGRA</a> in those cases
--   instead.
gl_ARB_vertex_array_bgra :: Bool


module Graphics.GL.ARB.UniformBufferObject

-- | Is the <a>ARB_uniform_buffer_object</a> extension supported?
glGetARBUniformBufferObject :: MonadIO m => m Bool

-- | Is the <a>ARB_uniform_buffer_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBUniformBufferObject</a> in those cases
--   instead.
gl_ARB_uniform_buffer_object :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()


module Graphics.GL.ARB.TransposeMatrix

-- | Is the <a>ARB_transpose_matrix</a> extension supported?
glGetARBTransposeMatrix :: MonadIO m => m Bool

-- | Is the <a>ARB_transpose_matrix</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTransposeMatrix</a> in those cases
--   instead.
gl_ARB_transpose_matrix :: Bool

-- | This command is an alias for <a>glLoadTransposeMatrixd</a>.
glLoadTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glLoadTransposeMatrixf</a>.
glLoadTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()

-- | This command is an alias for <a>glMultTransposeMatrixd</a>.
glMultTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()

-- | This command is an alias for <a>glMultTransposeMatrixf</a>.
glMultTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()


module Graphics.GL.ARB.TransformFeedbackOverflowQuery

-- | Is the <a>ARB_transform_feedback_overflow_query</a> extension
--   supported?
glGetARBTransformFeedbackOverflowQuery :: MonadIO m => m Bool

-- | Is the <a>ARB_transform_feedback_overflow_query</a> extension
--   supported? Note that in the presence of multiple contexts with
--   different capabilities, this might be wrong. Use
--   <a>glGetARBTransformFeedbackOverflowQuery</a> in those cases instead.
gl_ARB_transform_feedback_overflow_query :: Bool


module Graphics.GL.ARB.TransformFeedbackInstanced

-- | Is the <a>ARB_transform_feedback_instanced</a> extension supported?
glGetARBTransformFeedbackInstanced :: MonadIO m => m Bool

-- | Is the <a>ARB_transform_feedback_instanced</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetARBTransformFeedbackInstanced</a> in those cases instead.
gl_ARB_transform_feedback_instanced :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()


module Graphics.GL.ARB.TransformFeedback3

-- | Is the <a>ARB_transform_feedback3</a> extension supported?
glGetARBTransformFeedback3 :: MonadIO m => m Bool

-- | Is the <a>ARB_transform_feedback3</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTransformFeedback3</a> in those cases
--   instead.
gl_ARB_transform_feedback3 :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.ARB.TransformFeedback2

-- | Is the <a>ARB_transform_feedback2</a> extension supported?
glGetARBTransformFeedback2 :: MonadIO m => m Bool

-- | Is the <a>ARB_transform_feedback2</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTransformFeedback2</a> in those cases
--   instead.
gl_ARB_transform_feedback2 :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glPauseTransformFeedback :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glResumeTransformFeedback :: MonadIO m => m ()


module Graphics.GL.ARB.TimerQuery

-- | Is the <a>ARB_timer_query</a> extension supported?
glGetARBTimerQuery :: MonadIO m => m Bool

-- | Is the <a>ARB_timer_query</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBTimerQuery</a> in those cases instead.
gl_ARB_timer_query :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()


module Graphics.GL.ARB.TextureView

-- | Is the <a>ARB_texture_view</a> extension supported?
glGetARBTextureView :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_view</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBTextureView</a> in those cases instead.
gl_ARB_texture_view :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()


module Graphics.GL.ARB.TextureSwizzle

-- | Is the <a>ARB_texture_swizzle</a> extension supported?
glGetARBTextureSwizzle :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_swizzle</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureSwizzle</a> in those cases
--   instead.
gl_ARB_texture_swizzle :: Bool


module Graphics.GL.ARB.TextureStorageMultisample

-- | Is the <a>ARB_texture_storage_multisample</a> extension supported?
glGetARBTextureStorageMultisample :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_storage_multisample</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetARBTextureStorageMultisample</a> in those cases instead.
gl_ARB_texture_storage_multisample :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()


module Graphics.GL.ARB.TextureStorage

-- | Is the <a>ARB_texture_storage</a> extension supported?
glGetARBTextureStorage :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_storage</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureStorage</a> in those cases
--   instead.
gl_ARB_texture_storage :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()


module Graphics.GL.ARB.TextureStencil8

-- | Is the <a>ARB_texture_stencil8</a> extension supported?
glGetARBTextureStencil8 :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_stencil8</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureStencil8</a> in those cases
--   instead.
gl_ARB_texture_stencil8 :: Bool


module Graphics.GL.ARB.TextureRectangle

-- | Is the <a>ARB_texture_rectangle</a> extension supported?
glGetARBTextureRectangle :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_rectangle</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureRectangle</a> in those cases
--   instead.
gl_ARB_texture_rectangle :: Bool


module Graphics.GL.ARB.TextureRGB10A2UI

-- | Is the <a>ARB_texture_rgb10_a2ui</a> extension supported?
glGetARBTextureRGB10A2UI :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_rgb10_a2ui</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureRGB10A2UI</a> in those cases
--   instead.
gl_ARB_texture_rgb10_a2ui :: Bool


module Graphics.GL.ARB.TextureRG

-- | Is the <a>ARB_texture_rg</a> extension supported?
glGetARBTextureRG :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_rg</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBTextureRG</a> in those cases instead.
gl_ARB_texture_rg :: Bool


module Graphics.GL.ARB.TextureMultisample

-- | Is the <a>ARB_texture_multisample</a> extension supported?
glGetARBTextureMultisample :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_multisample</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureMultisample</a> in those cases
--   instead.
gl_ARB_texture_multisample :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()


module Graphics.GL.ARB.TextureMirroredRepeat

-- | Is the <a>ARB_texture_mirrored_repeat</a> extension supported?
glGetARBTextureMirroredRepeat :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_mirrored_repeat</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBTextureMirroredRepeat</a> in those
--   cases instead.
gl_ARB_texture_mirrored_repeat :: Bool


module Graphics.GL.ARB.TextureMirrorClampToEdge

-- | Is the <a>ARB_texture_mirror_clamp_to_edge</a> extension supported?
glGetARBTextureMirrorClampToEdge :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_mirror_clamp_to_edge</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetARBTextureMirrorClampToEdge</a> in those cases instead.
gl_ARB_texture_mirror_clamp_to_edge :: Bool


module Graphics.GL.ARB.TextureGather

-- | Is the <a>ARB_texture_gather</a> extension supported?
glGetARBTextureGather :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_gather</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBTextureGather</a> in those cases instead.
gl_ARB_texture_gather :: Bool


module Graphics.GL.ARB.TextureFloat

-- | Is the <a>ARB_texture_float</a> extension supported?
glGetARBTextureFloat :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_float</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBTextureFloat</a> in those cases instead.
gl_ARB_texture_float :: Bool


module Graphics.GL.ARB.TextureFilterMinmax

-- | Is the <a>ARB_texture_filter_minmax</a> extension supported?
glGetARBTextureFilterMinmax :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_filter_minmax</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureFilterMinmax</a> in those cases
--   instead.
gl_ARB_texture_filter_minmax :: Bool


module Graphics.GL.ARB.TextureFilterAnisotropic

-- | Is the <a>ARB_texture_filter_anisotropic</a> extension supported?
glGetARBTextureFilterAnisotropic :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_filter_anisotropic</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBTextureFilterAnisotropic</a> in
--   those cases instead.
gl_ARB_texture_filter_anisotropic :: Bool


module Graphics.GL.ARB.TextureEnvDot3

-- | Is the <a>ARB_texture_env_dot3</a> extension supported?
glGetARBTextureEnvDot3 :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_env_dot3</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureEnvDot3</a> in those cases
--   instead.
gl_ARB_texture_env_dot3 :: Bool


module Graphics.GL.ARB.TextureEnvCombine

-- | Is the <a>ARB_texture_env_combine</a> extension supported?
glGetARBTextureEnvCombine :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_env_combine</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureEnvCombine</a> in those cases
--   instead.
gl_ARB_texture_env_combine :: Bool


module Graphics.GL.ARB.TextureCubeMapArray

-- | Is the <a>ARB_texture_cube_map_array</a> extension supported?
glGetARBTextureCubeMapArray :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_cube_map_array</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBTextureCubeMapArray</a> in those
--   cases instead.
gl_ARB_texture_cube_map_array :: Bool


module Graphics.GL.ARB.TextureCubeMap

-- | Is the <a>ARB_texture_cube_map</a> extension supported?
glGetARBTextureCubeMap :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_cube_map</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureCubeMap</a> in those cases
--   instead.
gl_ARB_texture_cube_map :: Bool


module Graphics.GL.ARB.TextureCompressionRGTC

-- | Is the <a>ARB_texture_compression_rgtc</a> extension supported?
glGetARBTextureCompressionRGTC :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_compression_rgtc</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBTextureCompressionRGTC</a> in
--   those cases instead.
gl_ARB_texture_compression_rgtc :: Bool


module Graphics.GL.ARB.TextureCompressionBPTC

-- | Is the <a>ARB_texture_compression_bptc</a> extension supported?
glGetARBTextureCompressionBPTC :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_compression_bptc</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBTextureCompressionBPTC</a> in
--   those cases instead.
gl_ARB_texture_compression_bptc :: Bool


module Graphics.GL.ARB.TextureCompression

-- | Is the <a>ARB_texture_compression</a> extension supported?
glGetARBTextureCompression :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_compression</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureCompression</a> in those cases
--   instead.
gl_ARB_texture_compression :: Bool

-- | This command is an alias for <a>glCompressedTexImage1D</a>.
glCompressedTexImage1DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexImage2D</a>.
glCompressedTexImage2DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexImage3D</a>.
glCompressedTexImage3DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexSubImage1D</a>.
glCompressedTexSubImage1DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexSubImage2D</a>.
glCompressedTexSubImage2DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glCompressedTexSubImage3D</a>.
glCompressedTexSubImage3DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | This command is an alias for <a>glGetCompressedTexImage</a>.
glGetCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> Ptr a -> m ()


module Graphics.GL.ARB.TextureBufferRange

-- | Is the <a>ARB_texture_buffer_range</a> extension supported?
glGetARBTextureBufferRange :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_buffer_range</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureBufferRange</a> in those cases
--   instead.
gl_ARB_texture_buffer_range :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()


module Graphics.GL.ARB.TextureBufferObjectRGB32

-- | Is the <a>ARB_texture_buffer_object_rgb32</a> extension supported?
glGetARBTextureBufferObjectRGB32 :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_buffer_object_rgb32</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetARBTextureBufferObjectRGB32</a> in those cases instead.
gl_ARB_texture_buffer_object_rgb32 :: Bool


module Graphics.GL.ARB.TextureBufferObject

-- | Is the <a>ARB_texture_buffer_object</a> extension supported?
glGetARBTextureBufferObject :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_buffer_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureBufferObject</a> in those cases
--   instead.
gl_ARB_texture_buffer_object :: Bool

-- | This command is an alias for <a>glTexBuffer</a>.
glTexBufferARB :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()


module Graphics.GL.ARB.TextureBorderClamp

-- | Is the <a>ARB_texture_border_clamp</a> extension supported?
glGetARBTextureBorderClamp :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_border_clamp</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureBorderClamp</a> in those cases
--   instead.
gl_ARB_texture_border_clamp :: Bool


module Graphics.GL.ARB.TextureBarrier

-- | Is the <a>ARB_texture_barrier</a> extension supported?
glGetARBTextureBarrier :: MonadIO m => m Bool

-- | Is the <a>ARB_texture_barrier</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTextureBarrier</a> in those cases
--   instead.
gl_ARB_texture_barrier :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBarrier :: MonadIO m => m ()


module Graphics.GL.ARB.TessellationShader

-- | Is the <a>ARB_tessellation_shader</a> extension supported?
glGetARBTessellationShader :: MonadIO m => m Bool

-- | Is the <a>ARB_tessellation_shader</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBTessellationShader</a> in those cases
--   instead.
gl_ARB_tessellation_shader :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()


module Graphics.GL.ARB.Sync

-- | Is the <a>ARB_sync</a> extension supported?
glGetARBSync :: MonadIO m => m Bool

-- | Is the <a>ARB_sync</a> extension supported? Note that in the presence
--   of multiple contexts with different capabilities, this might be wrong.
--   Use <a>glGetARBSync</a> in those cases instead.
gl_ARB_sync :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()


module Graphics.GL.ARB.StencilTexturing

-- | Is the <a>ARB_stencil_texturing</a> extension supported?
glGetARBStencilTexturing :: MonadIO m => m Bool

-- | Is the <a>ARB_stencil_texturing</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBStencilTexturing</a> in those cases
--   instead.
gl_ARB_stencil_texturing :: Bool


module Graphics.GL.ARB.SpirvExtensions

-- | Is the <a>ARB_spirv_extensions</a> extension supported?
glGetARBSpirvExtensions :: MonadIO m => m Bool

-- | Is the <a>ARB_spirv_extensions</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBSpirvExtensions</a> in those cases
--   instead.
gl_ARB_spirv_extensions :: Bool


module Graphics.GL.ARB.SparseTexture

-- | Is the <a>ARB_sparse_texture</a> extension supported?
glGetARBSparseTexture :: MonadIO m => m Bool

-- | Is the <a>ARB_sparse_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBSparseTexture</a> in those cases instead.
gl_ARB_sparse_texture :: Bool
glTexPageCommitmentARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()


module Graphics.GL.ARB.SparseBuffer

-- | Is the <a>ARB_sparse_buffer</a> extension supported?
glGetARBSparseBuffer :: MonadIO m => m Bool

-- | Is the <a>ARB_sparse_buffer</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBSparseBuffer</a> in those cases instead.
gl_ARB_sparse_buffer :: Bool
glBufferPageCommitmentARB :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
glNamedBufferPageCommitmentARB :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
glNamedBufferPageCommitmentEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()


module Graphics.GL.ARB.ShadowAmbient

-- | Is the <a>ARB_shadow_ambient</a> extension supported?
glGetARBShadowAmbient :: MonadIO m => m Bool

-- | Is the <a>ARB_shadow_ambient</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBShadowAmbient</a> in those cases instead.
gl_ARB_shadow_ambient :: Bool


module Graphics.GL.ARB.Shadow

-- | Is the <a>ARB_shadow</a> extension supported?
glGetARBShadow :: MonadIO m => m Bool

-- | Is the <a>ARB_shadow</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBShadow</a> in those cases instead.
gl_ARB_shadow :: Bool


module Graphics.GL.ARB.ShadingLanguageInclude

-- | Is the <a>ARB_shading_language_include</a> extension supported?
glGetARBShadingLanguageInclude :: MonadIO m => m Bool

-- | Is the <a>ARB_shading_language_include</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBShadingLanguageInclude</a> in
--   those cases instead.
gl_ARB_shading_language_include :: Bool
glCompileShaderIncludeARB :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
glDeleteNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m ()
glGetNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()
glGetNamedStringivARB :: MonadIO m => GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()
glIsNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m GLboolean
glNamedStringARB :: MonadIO m => GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()


module Graphics.GL.ARB.ShadingLanguage100

-- | Is the <a>ARB_shading_language_100</a> extension supported?
glGetARBShadingLanguage100 :: MonadIO m => m Bool

-- | Is the <a>ARB_shading_language_100</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBShadingLanguage100</a> in those cases
--   instead.
gl_ARB_shading_language_100 :: Bool


module Graphics.GL.ARB.ShaderSubroutine

-- | Is the <a>ARB_shader_subroutine</a> extension supported?
glGetARBShaderSubroutine :: MonadIO m => m Bool

-- | Is the <a>ARB_shader_subroutine</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBShaderSubroutine</a> in those cases
--   instead.
gl_ARB_shader_subroutine :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()


module Graphics.GL.ARB.ShaderStorageBufferObject

-- | Is the <a>ARB_shader_storage_buffer_object</a> extension supported?
glGetARBShaderStorageBufferObject :: MonadIO m => m Bool

-- | Is the <a>ARB_shader_storage_buffer_object</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetARBShaderStorageBufferObject</a> in those cases instead.
gl_ARB_shader_storage_buffer_object :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()


module Graphics.GL.ARB.ShaderObjects

-- | Is the <a>ARB_shader_objects</a> extension supported?
glGetARBShaderObjects :: MonadIO m => m Bool

-- | Is the <a>ARB_shader_objects</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBShaderObjects</a> in those cases instead.
gl_ARB_shader_objects :: Bool

-- | This command is an alias for <a>glAttachShader</a>.
glAttachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()

-- | This command is an alias for <a>glCompileShader</a>.
glCompileShaderARB :: MonadIO m => GLhandleARB -> m ()

-- | This command is an alias for <a>glCreateProgram</a>.
glCreateProgramObjectARB :: MonadIO m => m GLhandleARB

-- | This command is an alias for <a>glCreateShader</a>.
glCreateShaderObjectARB :: MonadIO m => GLenum -> m GLhandleARB
glDeleteObjectARB :: MonadIO m => GLhandleARB -> m ()

-- | This command is an alias for <a>glDetachShader</a>.
glDetachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()

-- | This command is an alias for <a>glGetActiveUniform</a>.
glGetActiveUniformARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
glGetAttachedObjectsARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
glGetHandleARB :: MonadIO m => GLenum -> m GLhandleARB
glGetInfoLogARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
glGetObjectParameterfvARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLfloat -> m ()
glGetObjectParameterivARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetShaderSource</a>.
glGetShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()

-- | This command is an alias for <a>glGetUniformLocation</a>.
glGetUniformLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint

-- | This command is an alias for <a>glGetUniformfv</a>.
glGetUniformfvARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glGetUniformiv</a>.
glGetUniformivARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLint -> m ()

-- | This command is an alias for <a>glLinkProgram</a>.
glLinkProgramARB :: MonadIO m => GLhandleARB -> m ()

-- | This command is an alias for <a>glShaderSource</a>.
glShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()

-- | This command is an alias for <a>glUniform1f</a>.
glUniform1fARB :: MonadIO m => GLint -> GLfloat -> m ()

-- | This command is an alias for <a>glUniform1fv</a>.
glUniform1fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniform1i</a>.
glUniform1iARB :: MonadIO m => GLint -> GLint -> m ()

-- | This command is an alias for <a>glUniform1iv</a>.
glUniform1ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glUniform2f</a>.
glUniform2fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glUniform2fv</a>.
glUniform2fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniform2i</a>.
glUniform2iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glUniform2iv</a>.
glUniform2ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glUniform3f</a>.
glUniform3fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glUniform3fv</a>.
glUniform3fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniform3i</a>.
glUniform3iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glUniform3iv</a>.
glUniform3ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <tt>glUniform4f</tt>.
glUniform4fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glUniform4fv</a>.
glUniform4fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniform4i</a>.
glUniform4iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glUniform4iv</a>.
glUniform4ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | This command is an alias for <a>glUniformMatrix2fv</a>.
glUniformMatrix2fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix3fv</a>.
glUniformMatrix3fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUniformMatrix4fv</a>.
glUniformMatrix4fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | This command is an alias for <a>glUseProgram</a>.
glUseProgramObjectARB :: MonadIO m => GLhandleARB -> m ()

-- | This command is an alias for <a>glValidateProgram</a>.
glValidateProgramARB :: MonadIO m => GLhandleARB -> m ()


module Graphics.GL.ARB.ShaderImageLoadStore

-- | Is the <a>ARB_shader_image_load_store</a> extension supported?
glGetARBShaderImageLoadStore :: MonadIO m => m Bool

-- | Is the <a>ARB_shader_image_load_store</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBShaderImageLoadStore</a> in those
--   cases instead.
gl_ARB_shader_image_load_store :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()


module Graphics.GL.ARB.ShaderAtomicCounters

-- | Is the <a>ARB_shader_atomic_counters</a> extension supported?
glGetARBShaderAtomicCounters :: MonadIO m => m Bool

-- | Is the <a>ARB_shader_atomic_counters</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBShaderAtomicCounters</a> in those
--   cases instead.
gl_ARB_shader_atomic_counters :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.ARB.SeparateShaderObjects

-- | Is the <a>ARB_separate_shader_objects</a> extension supported?
glGetARBSeparateShaderObjects :: MonadIO m => m Bool

-- | Is the <a>ARB_separate_shader_objects</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBSeparateShaderObjects</a> in those
--   cases instead.
gl_ARB_separate_shader_objects :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()


module Graphics.GL.ARB.SeamlessCubemapPerTexture

-- | Is the <a>ARB_seamless_cubemap_per_texture</a> extension supported?
glGetARBSeamlessCubemapPerTexture :: MonadIO m => m Bool

-- | Is the <a>ARB_seamless_cubemap_per_texture</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetARBSeamlessCubemapPerTexture</a> in those cases instead.
gl_ARB_seamless_cubemap_per_texture :: Bool


module Graphics.GL.ARB.SeamlessCubeMap

-- | Is the <a>ARB_seamless_cube_map</a> extension supported?
glGetARBSeamlessCubeMap :: MonadIO m => m Bool

-- | Is the <a>ARB_seamless_cube_map</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBSeamlessCubeMap</a> in those cases
--   instead.
gl_ARB_seamless_cube_map :: Bool


module Graphics.GL.ARB.SamplerObjects

-- | Is the <a>ARB_sampler_objects</a> extension supported?
glGetARBSamplerObjects :: MonadIO m => m Bool

-- | Is the <a>ARB_sampler_objects</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBSamplerObjects</a> in those cases
--   instead.
gl_ARB_sampler_objects :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.ARB.SampleShading

-- | Is the <a>ARB_sample_shading</a> extension supported?
glGetARBSampleShading :: MonadIO m => m Bool

-- | Is the <a>ARB_sample_shading</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBSampleShading</a> in those cases instead.
gl_ARB_sample_shading :: Bool

-- | This command is an alias for <a>glMinSampleShading</a>.
glMinSampleShadingARB :: MonadIO m => GLfloat -> m ()


module Graphics.GL.ARB.SampleLocations

-- | Is the <a>ARB_sample_locations</a> extension supported?
glGetARBSampleLocations :: MonadIO m => m Bool

-- | Is the <a>ARB_sample_locations</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBSampleLocations</a> in those cases
--   instead.
gl_ARB_sample_locations :: Bool
glEvaluateDepthValuesARB :: MonadIO m => m ()
glFramebufferSampleLocationsfvARB :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glNamedFramebufferSampleLocationsfvARB :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()


module Graphics.GL.ARB.RobustnessCore

-- | Is the <a>ARB_robustness</a> extension supported?
glGetARBRobustness :: MonadIO m => m Bool

-- | Is the <a>ARB_robustness</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBRobustness</a> in those cases instead.
gl_ARB_robustness :: Bool
glGetGraphicsResetStatusARB :: MonadIO m => m GLenum
glGetnCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr a -> m ()
glGetnTexImageARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnUniformdvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glGetnUniformfvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glGetnUniformivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glGetnUniformuivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glReadnPixels</a>.
glReadnPixelsARB :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.ARB.RobustnessCompatibility

-- | Is the <a>ARB_robustness</a> extension supported?
glGetARBRobustness :: MonadIO m => m Bool

-- | Is the <a>ARB_robustness</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBRobustness</a> in those cases instead.
gl_ARB_robustness :: Bool
glGetGraphicsResetStatusARB :: MonadIO m => m GLenum
glGetnColorTableARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr a -> m ()
glGetnConvolutionFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnHistogramARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnMapdvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
glGetnMapfvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnMapivARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
glGetnMinmaxARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnPixelMapfvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnPixelMapuivARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glGetnPixelMapusvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
glGetnPolygonStippleARB :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
glGetnSeparableFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> GLsizei -> Ptr b -> Ptr c -> m ()
glGetnTexImageARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()
glGetnUniformdvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glGetnUniformfvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glGetnUniformivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glGetnUniformuivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glReadnPixels</a>.
glReadnPixelsARB :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.ARB.QueryBufferObject

-- | Is the <a>ARB_query_buffer_object</a> extension supported?
glGetARBQueryBufferObject :: MonadIO m => m Bool

-- | Is the <a>ARB_query_buffer_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBQueryBufferObject</a> in those cases
--   instead.
gl_ARB_query_buffer_object :: Bool


module Graphics.GL.ARB.ProvokingVertex

-- | Is the <a>ARB_provoking_vertex</a> extension supported?
glGetARBProvokingVertex :: MonadIO m => m Bool

-- | Is the <a>ARB_provoking_vertex</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBProvokingVertex</a> in those cases
--   instead.
gl_ARB_provoking_vertex :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glProvokingVertex :: MonadIO m => GLenum -> m ()


module Graphics.GL.ARB.ProgramInterfaceQuery

-- | Is the <a>ARB_program_interface_query</a> extension supported?
glGetARBProgramInterfaceQuery :: MonadIO m => m Bool

-- | Is the <a>ARB_program_interface_query</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBProgramInterfaceQuery</a> in those
--   cases instead.
gl_ARB_program_interface_query :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()


module Graphics.GL.ARB.PolygonOffsetClamp

-- | Is the <a>ARB_polygon_offset_clamp</a> extension supported?
glGetARBPolygonOffsetClamp :: MonadIO m => m Bool

-- | Is the <a>ARB_polygon_offset_clamp</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBPolygonOffsetClamp</a> in those cases
--   instead.
gl_ARB_polygon_offset_clamp :: Bool
glPolygonOffsetClamp :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()


module Graphics.GL.ARB.PointSprite

-- | Is the <a>ARB_point_sprite</a> extension supported?
glGetARBPointSprite :: MonadIO m => m Bool

-- | Is the <a>ARB_point_sprite</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBPointSprite</a> in those cases instead.
gl_ARB_point_sprite :: Bool


module Graphics.GL.ARB.PointParameters

-- | Is the <a>ARB_point_parameters</a> extension supported?
glGetARBPointParameters :: MonadIO m => m Bool

-- | Is the <a>ARB_point_parameters</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBPointParameters</a> in those cases
--   instead.
gl_ARB_point_parameters :: Bool

-- | This command is an alias for <a>glPointParameterf</a>.
glPointParameterfARB :: MonadIO m => GLenum -> GLfloat -> m ()

-- | This command is an alias for <a>glPointParameterfv</a>.
glPointParameterfvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()


module Graphics.GL.ARB.PixelBufferObject

-- | Is the <a>ARB_pixel_buffer_object</a> extension supported?
glGetARBPixelBufferObject :: MonadIO m => m Bool

-- | Is the <a>ARB_pixel_buffer_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBPixelBufferObject</a> in those cases
--   instead.
gl_ARB_pixel_buffer_object :: Bool


module Graphics.GL.ARB.PipelineStatisticsQuery

-- | Is the <a>ARB_pipeline_statistics_query</a> extension supported?
glGetARBPipelineStatisticsQuery :: MonadIO m => m Bool

-- | Is the <a>ARB_pipeline_statistics_query</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBPipelineStatisticsQuery</a> in
--   those cases instead.
gl_ARB_pipeline_statistics_query :: Bool


module Graphics.GL.ARB.ParallelShaderCompile

-- | Is the <a>ARB_parallel_shader_compile</a> extension supported?
glGetARBParallelShaderCompile :: MonadIO m => m Bool

-- | Is the <a>ARB_parallel_shader_compile</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBParallelShaderCompile</a> in those
--   cases instead.
gl_ARB_parallel_shader_compile :: Bool

-- | This command is an alias for <a>glMaxShaderCompilerThreadsKHR</a>.
glMaxShaderCompilerThreadsARB :: MonadIO m => GLuint -> m ()


module Graphics.GL.ARB.OcclusionQuery2

-- | Is the <a>ARB_occlusion_query2</a> extension supported?
glGetARBOcclusionQuery2 :: MonadIO m => m Bool

-- | Is the <a>ARB_occlusion_query2</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBOcclusionQuery2</a> in those cases
--   instead.
gl_ARB_occlusion_query2 :: Bool


module Graphics.GL.ARB.OcclusionQuery

-- | Is the <a>ARB_occlusion_query</a> extension supported?
glGetARBOcclusionQuery :: MonadIO m => m Bool

-- | Is the <a>ARB_occlusion_query</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBOcclusionQuery</a> in those cases
--   instead.
gl_ARB_occlusion_query :: Bool

-- | This command is an alias for <a>glBeginQuery</a>.
glBeginQueryARB :: MonadIO m => GLenum -> GLuint -> m ()

-- | This command is an alias for <a>glDeleteQueries</a>.
glDeleteQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glEndQuery</a>.
glEndQueryARB :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glGenQueries</a>.
glGenQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetQueryObjectiv</a>.
glGetQueryObjectivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glGetQueryObjectuiv</a>.
glGetQueryObjectuivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGetQueryiv</a>.
glGetQueryivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | This command is an alias for <a>glIsQuery</a>.
glIsQueryARB :: MonadIO m => GLuint -> m GLboolean


module Graphics.GL.ARB.Multitexture

-- | Is the <a>ARB_multitexture</a> extension supported?
glGetARBMultitexture :: MonadIO m => m Bool

-- | Is the <a>ARB_multitexture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBMultitexture</a> in those cases instead.
gl_ARB_multitexture :: Bool

-- | This command is an alias for <a>glActiveTexture</a>.
glActiveTextureARB :: MonadIO m => GLenum -> m ()

-- | This command is an alias for <a>glClientActiveTexture</a>.
glClientActiveTextureARB :: MonadIO m => GLenum -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1dv</a>.
--   This command is an alias for <a>glMultiTexCoord1d</a>.
glMultiTexCoord1dARB :: MonadIO m => GLenum -> GLdouble -> m ()

-- | This command is an alias for <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1fv</a>.
--   This command is an alias for <a>glMultiTexCoord1f</a>.
glMultiTexCoord1fARB :: MonadIO m => GLenum -> GLfloat -> m ()

-- | This command is an alias for <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1iv</a>.
--   This command is an alias for <a>glMultiTexCoord1i</a>.
glMultiTexCoord1iARB :: MonadIO m => GLenum -> GLint -> m ()

-- | This command is an alias for <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord1sv</a>.
--   This command is an alias for <a>glMultiTexCoord1s</a>.
glMultiTexCoord1sARB :: MonadIO m => GLenum -> GLshort -> m ()

-- | This command is an alias for <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2dv</a>.
--   This command is an alias for <a>glMultiTexCoord2d</a>.
glMultiTexCoord2dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2fv</a>.
--   This command is an alias for <a>glMultiTexCoord2f</a>.
glMultiTexCoord2fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2iv</a>.
--   This command is an alias for <a>glMultiTexCoord2i</a>.
glMultiTexCoord2iARB :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord2sv</a>.
--   This command is an alias for <a>glMultiTexCoord2s</a>.
glMultiTexCoord2sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3dv</a>.
--   This command is an alias for <a>glMultiTexCoord3d</a>.
glMultiTexCoord3dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3fv</a>.
--   This command is an alias for <a>glMultiTexCoord3f</a>.
glMultiTexCoord3fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3iv</a>.
--   This command is an alias for <a>glMultiTexCoord3i</a>.
glMultiTexCoord3iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord3sv</a>.
--   This command is an alias for <a>glMultiTexCoord3s</a>.
glMultiTexCoord3sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord4dv</a>.
--   This command is an alias for <a>glMultiTexCoord4d</a>.
glMultiTexCoord4dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | This command is an alias for <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord4fv</a>.
--   This command is an alias for <a>glMultiTexCoord4f</a>.
glMultiTexCoord4fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | This command is an alias for <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is <a>glMultiTexCoord4iv</a>.
--   This command is an alias for <a>glMultiTexCoord4i</a>.
glMultiTexCoord4iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | The vector equivalent of this command is <tt>glMultiTexCoord4sv</tt>.
--   This command is an alias for <a>glMultiTexCoord4s</a>.
glMultiTexCoord4sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | This command is an alias for <a>glMultiTexCoord4sv</a>.
glMultiTexCoord4svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()


module Graphics.GL.ARB.Multisample

-- | Is the <a>ARB_multisample</a> extension supported?
glGetARBMultisample :: MonadIO m => m Bool

-- | Is the <a>ARB_multisample</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBMultisample</a> in those cases instead.
gl_ARB_multisample :: Bool

-- | This command is an alias for <a>glSampleCoverage</a>.
glSampleCoverageARB :: MonadIO m => GLfloat -> GLboolean -> m ()


module Graphics.GL.ARB.MultiDrawIndirect

-- | Is the <a>ARB_multi_draw_indirect</a> extension supported?
glGetARBMultiDrawIndirect :: MonadIO m => m Bool

-- | Is the <a>ARB_multi_draw_indirect</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBMultiDrawIndirect</a> in those cases
--   instead.
gl_ARB_multi_draw_indirect :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()


module Graphics.GL.ARB.MultiBind

-- | Is the <a>ARB_multi_bind</a> extension supported?
glGetARBMultiBind :: MonadIO m => m Bool

-- | Is the <a>ARB_multi_bind</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBMultiBind</a> in those cases instead.
gl_ARB_multi_bind :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()


module Graphics.GL.ARB.MatrixPalette

-- | Is the <a>ARB_matrix_palette</a> extension supported?
glGetARBMatrixPalette :: MonadIO m => m Bool

-- | Is the <a>ARB_matrix_palette</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBMatrixPalette</a> in those cases instead.
gl_ARB_matrix_palette :: Bool
glCurrentPaletteMatrixARB :: MonadIO m => GLint -> m ()
glMatrixIndexPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr a -> m ()
glMatrixIndexubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
glMatrixIndexuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
glMatrixIndexusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()


module Graphics.GL.ARB.MapBufferRange

-- | Is the <a>ARB_map_buffer_range</a> extension supported?
glGetARBMapBufferRange :: MonadIO m => m Bool

-- | Is the <a>ARB_map_buffer_range</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBMapBufferRange</a> in those cases
--   instead.
gl_ARB_map_buffer_range :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)


module Graphics.GL.ARB.MapBufferAlignment

-- | Is the <a>ARB_map_buffer_alignment</a> extension supported?
glGetARBMapBufferAlignment :: MonadIO m => m Bool

-- | Is the <a>ARB_map_buffer_alignment</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBMapBufferAlignment</a> in those cases
--   instead.
gl_ARB_map_buffer_alignment :: Bool


module Graphics.GL.ARB.InvalidateSubdata

-- | Is the <a>ARB_invalidate_subdata</a> extension supported?
glGetARBInvalidateSubdata :: MonadIO m => m Bool

-- | Is the <a>ARB_invalidate_subdata</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBInvalidateSubdata</a> in those cases
--   instead.
gl_ARB_invalidate_subdata :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()


module Graphics.GL.ARB.InternalformatQuery2

-- | Is the <a>ARB_internalformat_query2</a> extension supported?
glGetARBInternalformatQuery2 :: MonadIO m => m Bool

-- | Is the <a>ARB_internalformat_query2</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBInternalformatQuery2</a> in those cases
--   instead.
gl_ARB_internalformat_query2 :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()


module Graphics.GL.ARB.InternalformatQuery

-- | Is the <a>ARB_internalformat_query</a> extension supported?
glGetARBInternalformatQuery :: MonadIO m => m Bool

-- | Is the <a>ARB_internalformat_query</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBInternalformatQuery</a> in those cases
--   instead.
gl_ARB_internalformat_query :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()


module Graphics.GL.ARB.InstancedArrays

-- | Is the <a>ARB_instanced_arrays</a> extension supported?
glGetARBInstancedArrays :: MonadIO m => m Bool

-- | Is the <a>ARB_instanced_arrays</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBInstancedArrays</a> in those cases
--   instead.
gl_ARB_instanced_arrays :: Bool

-- | This command is an alias for <a>glVertexAttribDivisor</a>.
glVertexAttribDivisorARB :: MonadIO m => GLuint -> GLuint -> m ()


module Graphics.GL.ARB.IndirectParameters

-- | Is the <a>ARB_indirect_parameters</a> extension supported?
glGetARBIndirectParameters :: MonadIO m => m Bool

-- | Is the <a>ARB_indirect_parameters</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBIndirectParameters</a> in those cases
--   instead.
gl_ARB_indirect_parameters :: Bool

-- | This command is an alias for <a>glMultiDrawArraysIndirectCount</a>.
glMultiDrawArraysIndirectCountARB :: MonadIO m => GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawElementsIndirectCount</a>.
glMultiDrawElementsIndirectCountARB :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> m ()


module Graphics.GL.ARB.ImagingCore

-- | Is the <a>ARB_imaging</a> extension supported?
glGetARBImaging :: MonadIO m => m Bool

-- | Is the <a>ARB_imaging</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBImaging</a> in those cases instead.
gl_ARB_imaging :: Bool

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()


module Graphics.GL.ARB.ImagingCompatibility

-- | Is the <a>ARB_imaging</a> extension supported?
glGetARBImaging :: MonadIO m => m Bool

-- | Is the <a>ARB_imaging</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBImaging</a> in those cases instead.
gl_ARB_imaging :: Bool

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Manual pages for <a>OpenGL 2.x</a> or <a>OpenGL 3.x</a> or <a>OpenGL
--   4.x</a>.
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorTable :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyColorTable :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glCopyConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetHistogramParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetHistogramParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMinmaxParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetMinmaxParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glGetSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glHistogram :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glMinmax :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glResetHistogram :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glResetMinmax :: MonadIO m => GLenum -> m ()

-- | Manual page for <a>OpenGL 2.x</a>.
glSeparableFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> Ptr b -> m ()


module Graphics.GL.ARB.HalfFloatVertex

-- | Is the <a>ARB_half_float_vertex</a> extension supported?
glGetARBHalfFloatVertex :: MonadIO m => m Bool

-- | Is the <a>ARB_half_float_vertex</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBHalfFloatVertex</a> in those cases
--   instead.
gl_ARB_half_float_vertex :: Bool

-- | 16bit half-precision floating-point value encoded in an unsigned
--   scalar.
type GLhalf = Half


module Graphics.GL.ARB.HalfFloatPixel

-- | Is the <a>ARB_half_float_pixel</a> extension supported?
glGetARBHalfFloatPixel :: MonadIO m => m Bool

-- | Is the <a>ARB_half_float_pixel</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBHalfFloatPixel</a> in those cases
--   instead.
gl_ARB_half_float_pixel :: Bool
type GLhalfARB = Half


module Graphics.GL.ARB.GlSpirv

-- | Is the <a>ARB_gl_spirv</a> extension supported?
glGetARBGlSpirv :: MonadIO m => m Bool

-- | Is the <a>ARB_gl_spirv</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBGlSpirv</a> in those cases instead.
gl_ARB_gl_spirv :: Bool

-- | This command is an alias for <a>glSpecializeShader</a>.
glSpecializeShaderARB :: MonadIO m => GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> m ()


module Graphics.GL.ARB.GetTextureSubImage

-- | Is the <a>ARB_get_texture_sub_image</a> extension supported?
glGetARBGetTextureSubImage :: MonadIO m => m Bool

-- | Is the <a>ARB_get_texture_sub_image</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBGetTextureSubImage</a> in those cases
--   instead.
gl_ARB_get_texture_sub_image :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.ARB.GetProgramBinary

-- | Is the <a>ARB_get_program_binary</a> extension supported?
glGetARBGetProgramBinary :: MonadIO m => m Bool

-- | Is the <a>ARB_get_program_binary</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBGetProgramBinary</a> in those cases
--   instead.
gl_ARB_get_program_binary :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr a -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()


module Graphics.GL.ARB.GeometryShader4

-- | Is the <a>ARB_geometry_shader4</a> extension supported?
glGetARBGeometryShader4 :: MonadIO m => m Bool

-- | Is the <a>ARB_geometry_shader4</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBGeometryShader4</a> in those cases
--   instead.
gl_ARB_geometry_shader4 :: Bool

-- | This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTextureFaceARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()

-- | This command is an alias for <a>glFramebufferTextureLayer</a>.
glFramebufferTextureLayerARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | This command is an alias for <a>glProgramParameteri</a>.
glProgramParameteriARB :: MonadIO m => GLuint -> GLenum -> GLint -> m ()


module Graphics.GL.ARB.GPUShaderInt64

-- | Is the <a>ARB_gpu_shader_int64</a> extension supported?
glGetARBGPUShaderInt64 :: MonadIO m => m Bool

-- | Is the <a>ARB_gpu_shader_int64</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBGPUShaderInt64</a> in those cases
--   instead.
gl_ARB_gpu_shader_int64 :: Bool
glGetUniformi64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLint64 -> m ()
glGetUniformui64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLuint64 -> m ()
glGetnUniformi64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
glGetnUniformui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniform1i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> m ()
glProgramUniform1i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
glProgramUniform1ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
glProgramUniform1ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniform2i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> m ()
glProgramUniform2i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
glProgramUniform2ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> m ()
glProgramUniform2ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniform3i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
glProgramUniform3i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
glProgramUniform3ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
glProgramUniform3ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glProgramUniform4i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
glProgramUniform4i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
glProgramUniform4ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
glProgramUniform4ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniform1i64ARB :: MonadIO m => GLint -> GLint64 -> m ()
glUniform1i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
glUniform1ui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()
glUniform1ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniform2i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> m ()
glUniform2i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
glUniform2ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> m ()
glUniform2ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniform3i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
glUniform3i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
glUniform3ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
glUniform3ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniform4i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
glUniform4i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
glUniform4ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
glUniform4ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()


module Graphics.GL.ARB.GPUShaderFP64

-- | Is the <a>ARB_gpu_shader_fp64</a> extension supported?
glGetARBGPUShaderFP64 :: MonadIO m => m Bool

-- | Is the <a>ARB_gpu_shader_fp64</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBGPUShaderFP64</a> in those cases
--   instead.
gl_ARB_gpu_shader_fp64 :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()


module Graphics.GL.ARB.GPUShader5

-- | Is the <a>ARB_gpu_shader5</a> extension supported?
glGetARBGPUShader5 :: MonadIO m => m Bool

-- | Is the <a>ARB_gpu_shader5</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBGPUShader5</a> in those cases instead.
gl_ARB_gpu_shader5 :: Bool


module Graphics.GL.ARB.FramebufferSRGB

-- | Is the <a>ARB_framebuffer_sRGB</a> extension supported?
glGetARBFramebufferSRGB :: MonadIO m => m Bool

-- | Is the <a>ARB_framebuffer_sRGB</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBFramebufferSRGB</a> in those cases
--   instead.
gl_ARB_framebuffer_sRGB :: Bool


module Graphics.GL.ARB.FramebufferObjectCore

-- | Is the <a>ARB_framebuffer_object</a> extension supported?
glGetARBFramebufferObject :: MonadIO m => m Bool

-- | Is the <a>ARB_framebuffer_object</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBFramebufferObject</a> in those cases
--   instead.
gl_ARB_framebuffer_object :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()


module Graphics.GL.ARB.FramebufferObjectCompatibility

-- | Is the <a>ARB_framebuffer_object</a> extension supported?
glGetARBFramebufferObject :: MonadIO m => m Bool

-- | Is the <a>ARB_framebuffer_object</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBFramebufferObject</a> in those cases
--   instead.
gl_ARB_framebuffer_object :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()


module Graphics.GL.ARB.FramebufferNoAttachments

-- | Is the <a>ARB_framebuffer_no_attachments</a> extension supported?
glGetARBFramebufferNoAttachments :: MonadIO m => m Bool

-- | Is the <a>ARB_framebuffer_no_attachments</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBFramebufferNoAttachments</a> in
--   those cases instead.
gl_ARB_framebuffer_no_attachments :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()


module Graphics.GL.ARB.FragmentShader

-- | Is the <a>ARB_fragment_shader</a> extension supported?
glGetARBFragmentShader :: MonadIO m => m Bool

-- | Is the <a>ARB_fragment_shader</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBFragmentShader</a> in those cases
--   instead.
gl_ARB_fragment_shader :: Bool


module Graphics.GL.ARB.FragmentProgram

-- | Is the <a>ARB_fragment_program</a> extension supported?
glGetARBFragmentProgram :: MonadIO m => m Bool

-- | Is the <a>ARB_fragment_program</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBFragmentProgram</a> in those cases
--   instead.
gl_ARB_fragment_program :: Bool
glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()
glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glIsProgramARB :: MonadIO m => GLuint -> m GLboolean

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameter4dvARB</a>.
glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramEnvParameter4fvARB</a>.
glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameter4dvARB</a>.
glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | The vector equivalent of this command is
--   <a>glProgramLocalParameter4fvARB</a>.
glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.ARB.ExplicitUniformLocation

-- | Is the <a>ARB_explicit_uniform_location</a> extension supported?
glGetARBExplicitUniformLocation :: MonadIO m => m Bool

-- | Is the <a>ARB_explicit_uniform_location</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBExplicitUniformLocation</a> in
--   those cases instead.
gl_ARB_explicit_uniform_location :: Bool


module Graphics.GL.ARB.EnhancedLayouts

-- | Is the <a>ARB_enhanced_layouts</a> extension supported?
glGetARBEnhancedLayouts :: MonadIO m => m Bool

-- | Is the <a>ARB_enhanced_layouts</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBEnhancedLayouts</a> in those cases
--   instead.
gl_ARB_enhanced_layouts :: Bool


module Graphics.GL.ARB.ES3Compatibility

-- | Is the <a>ARB_ES3_compatibility</a> extension supported?
glGetARBES3Compatibility :: MonadIO m => m Bool

-- | Is the <a>ARB_ES3_compatibility</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBES3Compatibility</a> in those cases
--   instead.
gl_ARB_ES3_compatibility :: Bool


module Graphics.GL.ARB.ES32Compatibility

-- | Is the <a>ARB_ES3_2_compatibility</a> extension supported?
glGetARBES32Compatibility :: MonadIO m => m Bool

-- | Is the <a>ARB_ES3_2_compatibility</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBES32Compatibility</a> in those cases
--   instead.
gl_ARB_ES3_2_compatibility :: Bool

-- | This command is an alias for <a>glPrimitiveBoundingBox</a>.
glPrimitiveBoundingBoxARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()


module Graphics.GL.ARB.ES31Compatibility

-- | Is the <a>ARB_ES3_1_compatibility</a> extension supported?
glGetARBES31Compatibility :: MonadIO m => m Bool

-- | Is the <a>ARB_ES3_1_compatibility</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBES31Compatibility</a> in those cases
--   instead.
gl_ARB_ES3_1_compatibility :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()


module Graphics.GL.ARB.ES2Compatibility

-- | Is the <a>ARB_ES2_compatibility</a> extension supported?
glGetARBES2Compatibility :: MonadIO m => m Bool

-- | Is the <a>ARB_ES2_compatibility</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBES2Compatibility</a> in those cases
--   instead.
gl_ARB_ES2_compatibility :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> m ()


module Graphics.GL.ARB.DrawInstanced

-- | Is the <a>ARB_draw_instanced</a> extension supported?
glGetARBDrawInstanced :: MonadIO m => m Bool

-- | Is the <a>ARB_draw_instanced</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBDrawInstanced</a> in those cases instead.
gl_ARB_draw_instanced :: Bool

-- | This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedARB :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedARB :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> m ()


module Graphics.GL.ARB.DrawIndirect

-- | Is the <a>ARB_draw_indirect</a> extension supported?
glGetARBDrawIndirect :: MonadIO m => m Bool

-- | Is the <a>ARB_draw_indirect</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBDrawIndirect</a> in those cases instead.
gl_ARB_draw_indirect :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr a -> m ()


module Graphics.GL.ARB.DrawElementsBaseVertex

-- | Is the <a>ARB_draw_elements_base_vertex</a> extension supported?
glGetARBDrawElementsBaseVertex :: MonadIO m => m Bool

-- | Is the <a>ARB_draw_elements_base_vertex</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetARBDrawElementsBaseVertex</a> in
--   those cases instead.
gl_ARB_draw_elements_base_vertex :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> m ()


module Graphics.GL.ARB.DrawBuffersBlend

-- | Is the <a>ARB_draw_buffers_blend</a> extension supported?
glGetARBDrawBuffersBlend :: MonadIO m => m Bool

-- | Is the <a>ARB_draw_buffers_blend</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBDrawBuffersBlend</a> in those cases
--   instead.
gl_ARB_draw_buffers_blend :: Bool

-- | This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationiARB :: MonadIO m => GLuint -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFunci</a>.
glBlendFunciARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()


module Graphics.GL.ARB.DrawBuffers

-- | Is the <a>ARB_draw_buffers</a> extension supported?
glGetARBDrawBuffers :: MonadIO m => m Bool

-- | Is the <a>ARB_draw_buffers</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBDrawBuffers</a> in those cases instead.
gl_ARB_draw_buffers :: Bool

-- | This command is an alias for <a>glDrawBuffers</a>.
glDrawBuffersARB :: MonadIO m => GLsizei -> Ptr GLenum -> m ()


module Graphics.GL.ARB.DirectStateAccess

-- | Is the <a>ARB_direct_state_access</a> extension supported?
glGetARBDirectStateAccess :: MonadIO m => m Bool

-- | Is the <a>ARB_direct_state_access</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBDirectStateAccess</a> in those cases
--   instead.
gl_ARB_direct_state_access :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr a) -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr a)

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()


module Graphics.GL.ARB.DepthTexture

-- | Is the <a>ARB_depth_texture</a> extension supported?
glGetARBDepthTexture :: MonadIO m => m Bool

-- | Is the <a>ARB_depth_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBDepthTexture</a> in those cases instead.
gl_ARB_depth_texture :: Bool


module Graphics.GL.ARB.DepthClamp

-- | Is the <a>ARB_depth_clamp</a> extension supported?
glGetARBDepthClamp :: MonadIO m => m Bool

-- | Is the <a>ARB_depth_clamp</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBDepthClamp</a> in those cases instead.
gl_ARB_depth_clamp :: Bool


module Graphics.GL.ARB.DepthBufferFloat

-- | Is the <a>ARB_depth_buffer_float</a> extension supported?
glGetARBDepthBufferFloat :: MonadIO m => m Bool

-- | Is the <a>ARB_depth_buffer_float</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBDepthBufferFloat</a> in those cases
--   instead.
gl_ARB_depth_buffer_float :: Bool


module Graphics.GL.ARB.DebugOutput

-- | Is the <a>ARB_debug_output</a> extension supported?
glGetARBDebugOutput :: MonadIO m => m Bool

-- | Is the <a>ARB_debug_output</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBDebugOutput</a> in those cases instead.
gl_ARB_debug_output :: Bool

-- | This command is an alias for <a>glDebugMessageCallback</a>.
glDebugMessageCallbackARB :: MonadIO m => GLDEBUGPROCARB -> Ptr a -> m ()

-- | This command is an alias for <a>glDebugMessageControl</a>.
glDebugMessageControlARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | This command is an alias for <a>glDebugMessageInsert</a>.
glDebugMessageInsertARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | This command is an alias for <a>glGetDebugMessageLog</a>.
glGetDebugMessageLogARB :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint


module Graphics.GL.ARB.CullDistance

-- | Is the <a>ARB_cull_distance</a> extension supported?
glGetARBCullDistance :: MonadIO m => m Bool

-- | Is the <a>ARB_cull_distance</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBCullDistance</a> in those cases instead.
gl_ARB_cull_distance :: Bool


module Graphics.GL.ARB.CopyImage

-- | Is the <a>ARB_copy_image</a> extension supported?
glGetARBCopyImage :: MonadIO m => m Bool

-- | Is the <a>ARB_copy_image</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBCopyImage</a> in those cases instead.
gl_ARB_copy_image :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()


module Graphics.GL.ARB.CopyBuffer

-- | Is the <a>ARB_copy_buffer</a> extension supported?
glGetARBCopyBuffer :: MonadIO m => m Bool

-- | Is the <a>ARB_copy_buffer</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBCopyBuffer</a> in those cases instead.
gl_ARB_copy_buffer :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()


module Graphics.GL.ARB.ConditionalRenderInverted

-- | Is the <a>ARB_conditional_render_inverted</a> extension supported?
glGetARBConditionalRenderInverted :: MonadIO m => m Bool

-- | Is the <a>ARB_conditional_render_inverted</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetARBConditionalRenderInverted</a> in those cases instead.
gl_ARB_conditional_render_inverted :: Bool


module Graphics.GL.ARB.ComputeVariableGroupSize

-- | Is the <a>ARB_compute_variable_group_size</a> extension supported?
glGetARBComputeVariableGroupSize :: MonadIO m => m Bool

-- | Is the <a>ARB_compute_variable_group_size</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetARBComputeVariableGroupSize</a> in those cases instead.
gl_ARB_compute_variable_group_size :: Bool
glDispatchComputeGroupSizeARB :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()


module Graphics.GL.ARB.ComputeShader

-- | Is the <a>ARB_compute_shader</a> extension supported?
glGetARBComputeShader :: MonadIO m => m Bool

-- | Is the <a>ARB_compute_shader</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBComputeShader</a> in those cases instead.
gl_ARB_compute_shader :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()


module Graphics.GL.ARB.CompressedTexturePixelStorage

-- | Is the <a>ARB_compressed_texture_pixel_storage</a> extension
--   supported?
glGetARBCompressedTexturePixelStorage :: MonadIO m => m Bool

-- | Is the <a>ARB_compressed_texture_pixel_storage</a> extension
--   supported? Note that in the presence of multiple contexts with
--   different capabilities, this might be wrong. Use
--   <a>glGetARBCompressedTexturePixelStorage</a> in those cases instead.
gl_ARB_compressed_texture_pixel_storage :: Bool


module Graphics.GL.ARB.ColorBufferFloat

-- | Is the <a>ARB_color_buffer_float</a> extension supported?
glGetARBColorBufferFloat :: MonadIO m => m Bool

-- | Is the <a>ARB_color_buffer_float</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBColorBufferFloat</a> in those cases
--   instead.
gl_ARB_color_buffer_float :: Bool

-- | This command is an alias for <a>glClampColor</a>.
glClampColorARB :: MonadIO m => GLenum -> GLenum -> m ()


module Graphics.GL.ARB.ClipControl

-- | Is the <a>ARB_clip_control</a> extension supported?
glGetARBClipControl :: MonadIO m => m Bool

-- | Is the <a>ARB_clip_control</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBClipControl</a> in those cases instead.
gl_ARB_clip_control :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glClipControl :: MonadIO m => GLenum -> GLenum -> m ()


module Graphics.GL.ARB.ClearTexture

-- | Is the <a>ARB_clear_texture</a> extension supported?
glGetARBClearTexture :: MonadIO m => m Bool

-- | Is the <a>ARB_clear_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBClearTexture</a> in those cases instead.
gl_ARB_clear_texture :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m ()


module Graphics.GL.ARB.ClearBufferObject

-- | Is the <a>ARB_clear_buffer_object</a> extension supported?
glGetARBClearBufferObject :: MonadIO m => m Bool

-- | Is the <a>ARB_clear_buffer_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBClearBufferObject</a> in those cases
--   instead.
gl_ARB_clear_buffer_object :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> m ()


module Graphics.GL.ARB.CLEvent

-- | Is the <a>ARB_cl_event</a> extension supported?
glGetARBCLEvent :: MonadIO m => m Bool

-- | Is the <a>ARB_cl_event</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBCLEvent</a> in those cases instead.
gl_ARB_cl_event :: Bool
glCreateSyncFromCLeventARB :: MonadIO m => Ptr a -> Ptr b -> GLbitfield -> m GLsync


module Graphics.GL.ARB.BufferStorage

-- | Is the <a>ARB_buffer_storage</a> extension supported?
glGetARBBufferStorage :: MonadIO m => m Bool

-- | Is the <a>ARB_buffer_storage</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBBufferStorage</a> in those cases instead.
gl_ARB_buffer_storage :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> m ()


module Graphics.GL.ARB.BlendFuncExtended

-- | Is the <a>ARB_blend_func_extended</a> extension supported?
glGetARBBlendFuncExtended :: MonadIO m => m Bool

-- | Is the <a>ARB_blend_func_extended</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBBlendFuncExtended</a> in those cases
--   instead.
gl_ARB_blend_func_extended :: Bool

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Manual pages for <a>OpenGL 3.x</a> or <a>OpenGL 4.x</a>.
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint


module Graphics.GL.ARB.BindlessTexture

-- | Is the <a>ARB_bindless_texture</a> extension supported?
glGetARBBindlessTexture :: MonadIO m => m Bool

-- | Is the <a>ARB_bindless_texture</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetARBBindlessTexture</a> in those cases
--   instead.
gl_ARB_bindless_texture :: Bool
glGetImageHandleARB :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
glGetTextureHandleARB :: MonadIO m => GLuint -> m GLuint64
glGetTextureSamplerHandleARB :: MonadIO m => GLuint -> GLuint -> m GLuint64
glGetVertexAttribLui64vARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
glIsImageHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
glIsTextureHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
glMakeImageHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
glMakeImageHandleResidentARB :: MonadIO m => GLuint64 -> GLenum -> m ()
glMakeTextureHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
glMakeTextureHandleResidentARB :: MonadIO m => GLuint64 -> m ()
glProgramUniformHandleui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
glProgramUniformHandleui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
glUniformHandleui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()
glUniformHandleui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
glVertexAttribL1ui64ARB :: MonadIO m => GLuint -> GLuint64EXT -> m ()
glVertexAttribL1ui64vARB :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()


module Graphics.GL.ARB.BaseInstance

-- | Is the <a>ARB_base_instance</a> extension supported?
glGetARBBaseInstance :: MonadIO m => m Bool

-- | Is the <a>ARB_base_instance</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetARBBaseInstance</a> in those cases instead.
gl_ARB_base_instance :: Bool

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> m ()

-- | Manual page for <a>OpenGL 4.x</a>.
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> m ()


-- | A convenience module, combining all raw modules containing ARB
--   extensions.
module Graphics.GL.ARB


module Graphics.GL.APPLE.YCbCr422

-- | Is the <a>APPLE_ycbcr_422</a> extension supported?
glGetAPPLEYCbCr422 :: MonadIO m => m Bool

-- | Is the <a>APPLE_ycbcr_422</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetAPPLEYCbCr422</a> in those cases instead.
gl_APPLE_ycbcr_422 :: Bool


module Graphics.GL.APPLE.VertexProgramEvaluators

-- | Is the <a>APPLE_vertex_program_evaluators</a> extension supported?
glGetAPPLEVertexProgramEvaluators :: MonadIO m => m Bool

-- | Is the <a>APPLE_vertex_program_evaluators</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetAPPLEVertexProgramEvaluators</a> in those cases instead.
gl_APPLE_vertex_program_evaluators :: Bool
glDisableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()
glEnableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()
glIsVertexAttribEnabledAPPLE :: MonadIO m => GLuint -> GLenum -> m GLboolean
glMapVertexAttrib1dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glMapVertexAttrib1fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glMapVertexAttrib2dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glMapVertexAttrib2fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()


module Graphics.GL.APPLE.VertexArrayRange

-- | Is the <a>APPLE_vertex_array_range</a> extension supported?
glGetAPPLEVertexArrayRange :: MonadIO m => m Bool

-- | Is the <a>APPLE_vertex_array_range</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLEVertexArrayRange</a> in those cases
--   instead.
gl_APPLE_vertex_array_range :: Bool
glFlushVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr a -> m ()
glVertexArrayParameteriAPPLE :: MonadIO m => GLenum -> GLint -> m ()
glVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr a -> m ()


module Graphics.GL.APPLE.VertexArrayObject

-- | Is the <a>APPLE_vertex_array_object</a> extension supported?
glGetAPPLEVertexArrayObject :: MonadIO m => m Bool

-- | Is the <a>APPLE_vertex_array_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLEVertexArrayObject</a> in those cases
--   instead.
gl_APPLE_vertex_array_object :: Bool
glBindVertexArrayAPPLE :: MonadIO m => GLuint -> m ()

-- | This command is an alias for <a>glDeleteVertexArrays</a>.
glDeleteVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glGenVertexArrays</a>.
glGenVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | This command is an alias for <a>glIsVertexArray</a>.
glIsVertexArrayAPPLE :: MonadIO m => GLuint -> m GLboolean


module Graphics.GL.APPLE.TransformHint

-- | Is the <a>APPLE_transform_hint</a> extension supported?
glGetAPPLETransformHint :: MonadIO m => m Bool

-- | Is the <a>APPLE_transform_hint</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLETransformHint</a> in those cases
--   instead.
gl_APPLE_transform_hint :: Bool


module Graphics.GL.APPLE.TextureRange

-- | Is the <a>APPLE_texture_range</a> extension supported?
glGetAPPLETextureRange :: MonadIO m => m Bool

-- | Is the <a>APPLE_texture_range</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLETextureRange</a> in those cases
--   instead.
gl_APPLE_texture_range :: Bool
glGetTexParameterPointervAPPLE :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr a) -> m ()
glTextureRangeAPPLE :: MonadIO m => GLenum -> GLsizei -> Ptr a -> m ()


module Graphics.GL.APPLE.SpecularVector

-- | Is the <a>APPLE_specular_vector</a> extension supported?
glGetAPPLESpecularVector :: MonadIO m => m Bool

-- | Is the <a>APPLE_specular_vector</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLESpecularVector</a> in those cases
--   instead.
gl_APPLE_specular_vector :: Bool


module Graphics.GL.APPLE.RowBytes

-- | Is the <a>APPLE_row_bytes</a> extension supported?
glGetAPPLERowBytes :: MonadIO m => m Bool

-- | Is the <a>APPLE_row_bytes</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetAPPLERowBytes</a> in those cases instead.
gl_APPLE_row_bytes :: Bool


module Graphics.GL.APPLE.RGB422

-- | Is the <a>APPLE_rgb_422</a> extension supported?
glGetAPPLERGB422 :: MonadIO m => m Bool

-- | Is the <a>APPLE_rgb_422</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetAPPLERGB422</a> in those cases instead.
gl_APPLE_rgb_422 :: Bool


module Graphics.GL.APPLE.ObjectPurgeable

-- | Is the <a>APPLE_object_purgeable</a> extension supported?
glGetAPPLEObjectPurgeable :: MonadIO m => m Bool

-- | Is the <a>APPLE_object_purgeable</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLEObjectPurgeable</a> in those cases
--   instead.
gl_APPLE_object_purgeable :: Bool
glGetObjectParameterivAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
glObjectPurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum
glObjectUnpurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum


module Graphics.GL.APPLE.FlushBufferRange

-- | Is the <a>APPLE_flush_buffer_range</a> extension supported?
glGetAPPLEFlushBufferRange :: MonadIO m => m Bool

-- | Is the <a>APPLE_flush_buffer_range</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLEFlushBufferRange</a> in those cases
--   instead.
gl_APPLE_flush_buffer_range :: Bool
glBufferParameteriAPPLE :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | This command is an alias for <a>glFlushMappedBufferRange</a>.
glFlushMappedBufferRangeAPPLE :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()


module Graphics.GL.APPLE.FloatPixels

-- | Is the <a>APPLE_float_pixels</a> extension supported?
glGetAPPLEFloatPixels :: MonadIO m => m Bool

-- | Is the <a>APPLE_float_pixels</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetAPPLEFloatPixels</a> in those cases instead.
gl_APPLE_float_pixels :: Bool


module Graphics.GL.APPLE.Fence

-- | Is the <a>APPLE_fence</a> extension supported?
glGetAPPLEFence :: MonadIO m => m Bool

-- | Is the <a>APPLE_fence</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetAPPLEFence</a> in those cases instead.
gl_APPLE_fence :: Bool
glDeleteFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glFinishFenceAPPLE :: MonadIO m => GLuint -> m ()
glFinishObjectAPPLE :: MonadIO m => GLenum -> GLint -> m ()
glGenFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glIsFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
glSetFenceAPPLE :: MonadIO m => GLuint -> m ()
glTestFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
glTestObjectAPPLE :: MonadIO m => GLenum -> GLuint -> m GLboolean


module Graphics.GL.APPLE.ElementArray

-- | Is the <a>APPLE_element_array</a> extension supported?
glGetAPPLEElementArray :: MonadIO m => m Bool

-- | Is the <a>APPLE_element_array</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLEElementArray</a> in those cases
--   instead.
gl_APPLE_element_array :: Bool
glDrawElementArrayAPPLE :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
glDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
glElementPointerAPPLE :: MonadIO m => GLenum -> Ptr a -> m ()
glMultiDrawElementArrayAPPLE :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
glMultiDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()


module Graphics.GL.APPLE.ClientStorage

-- | Is the <a>APPLE_client_storage</a> extension supported?
glGetAPPLEClientStorage :: MonadIO m => m Bool

-- | Is the <a>APPLE_client_storage</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLEClientStorage</a> in those cases
--   instead.
gl_APPLE_client_storage :: Bool


module Graphics.GL.APPLE.AuxDepthStencil

-- | Is the <a>APPLE_aux_depth_stencil</a> extension supported?
glGetAPPLEAuxDepthStencil :: MonadIO m => m Bool

-- | Is the <a>APPLE_aux_depth_stencil</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAPPLEAuxDepthStencil</a> in those cases
--   instead.
gl_APPLE_aux_depth_stencil :: Bool


-- | A convenience module, combining all raw modules containing APPLE
--   extensions.
module Graphics.GL.APPLE


module Graphics.GL.AMD.VertexShaderTessellator

-- | Is the <a>AMD_vertex_shader_tessellator</a> extension supported?
glGetAMDVertexShaderTessellator :: MonadIO m => m Bool

-- | Is the <a>AMD_vertex_shader_tessellator</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetAMDVertexShaderTessellator</a> in
--   those cases instead.
gl_AMD_vertex_shader_tessellator :: Bool
glTessellationFactorAMD :: MonadIO m => GLfloat -> m ()
glTessellationModeAMD :: MonadIO m => GLenum -> m ()


module Graphics.GL.AMD.TransformFeedback4

-- | Is the <a>AMD_transform_feedback4</a> extension supported?
glGetAMDTransformFeedback4 :: MonadIO m => m Bool

-- | Is the <a>AMD_transform_feedback4</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDTransformFeedback4</a> in those cases
--   instead.
gl_AMD_transform_feedback4 :: Bool


module Graphics.GL.AMD.StencilOperationExtended

-- | Is the <a>AMD_stencil_operation_extended</a> extension supported?
glGetAMDStencilOperationExtended :: MonadIO m => m Bool

-- | Is the <a>AMD_stencil_operation_extended</a> extension supported? Note
--   that in the presence of multiple contexts with different capabilities,
--   this might be wrong. Use <a>glGetAMDStencilOperationExtended</a> in
--   those cases instead.
gl_AMD_stencil_operation_extended :: Bool
glStencilOpValueAMD :: MonadIO m => GLenum -> GLuint -> m ()


module Graphics.GL.AMD.SparseTexture

-- | Is the <a>AMD_sparse_texture</a> extension supported?
glGetAMDSparseTexture :: MonadIO m => m Bool

-- | Is the <a>AMD_sparse_texture</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetAMDSparseTexture</a> in those cases instead.
gl_AMD_sparse_texture :: Bool
glTexStorageSparseAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
glTextureStorageSparseAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()


module Graphics.GL.AMD.SeamlessCubemapPerTexture

-- | Is the <a>AMD_seamless_cubemap_per_texture</a> extension supported?
glGetAMDSeamlessCubemapPerTexture :: MonadIO m => m Bool

-- | Is the <a>AMD_seamless_cubemap_per_texture</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetAMDSeamlessCubemapPerTexture</a> in those cases instead.
gl_AMD_seamless_cubemap_per_texture :: Bool


module Graphics.GL.AMD.SamplePositions

-- | Is the <a>AMD_sample_positions</a> extension supported?
glGetAMDSamplePositions :: MonadIO m => m Bool

-- | Is the <a>AMD_sample_positions</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDSamplePositions</a> in those cases
--   instead.
gl_AMD_sample_positions :: Bool
glSetMultisamplefvAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()


module Graphics.GL.AMD.QueryBufferObject

-- | Is the <a>AMD_query_buffer_object</a> extension supported?
glGetAMDQueryBufferObject :: MonadIO m => m Bool

-- | Is the <a>AMD_query_buffer_object</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDQueryBufferObject</a> in those cases
--   instead.
gl_AMD_query_buffer_object :: Bool


module Graphics.GL.AMD.PinnedMemory

-- | Is the <a>AMD_pinned_memory</a> extension supported?
glGetAMDPinnedMemory :: MonadIO m => m Bool

-- | Is the <a>AMD_pinned_memory</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetAMDPinnedMemory</a> in those cases instead.
gl_AMD_pinned_memory :: Bool


module Graphics.GL.AMD.PerformanceMonitor

-- | Is the <a>AMD_performance_monitor</a> extension supported?
glGetAMDPerformanceMonitor :: MonadIO m => m Bool

-- | Is the <a>AMD_performance_monitor</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDPerformanceMonitor</a> in those cases
--   instead.
gl_AMD_performance_monitor :: Bool
glBeginPerfMonitorAMD :: MonadIO m => GLuint -> m ()
glDeletePerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glEndPerfMonitorAMD :: MonadIO m => GLuint -> m ()
glGenPerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGetPerfMonitorCounterDataAMD :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()
glGetPerfMonitorCounterInfoAMD :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr a -> m ()
glGetPerfMonitorCounterStringAMD :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetPerfMonitorCountersAMD :: MonadIO m => GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
glGetPerfMonitorGroupStringAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetPerfMonitorGroupsAMD :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
glSelectPerfMonitorCountersAMD :: MonadIO m => GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()


module Graphics.GL.AMD.OcclusionQueryEvent

-- | Is the <a>AMD_occlusion_query_event</a> extension supported?
glGetAMDOcclusionQueryEvent :: MonadIO m => m Bool

-- | Is the <a>AMD_occlusion_query_event</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDOcclusionQueryEvent</a> in those cases
--   instead.
gl_AMD_occlusion_query_event :: Bool
glQueryObjectParameteruiAMD :: MonadIO m => GLenum -> GLuint -> GLenum -> GLuint -> m ()


module Graphics.GL.AMD.NameGenDelete

-- | Is the <a>AMD_name_gen_delete</a> extension supported?
glGetAMDNameGenDelete :: MonadIO m => m Bool

-- | Is the <a>AMD_name_gen_delete</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDNameGenDelete</a> in those cases
--   instead.
gl_AMD_name_gen_delete :: Bool
glDeleteNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glGenNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glIsNameAMD :: MonadIO m => GLenum -> GLuint -> m GLboolean


module Graphics.GL.AMD.MultiDrawIndirect

-- | Is the <a>AMD_multi_draw_indirect</a> extension supported?
glGetAMDMultiDrawIndirect :: MonadIO m => m Bool

-- | Is the <a>AMD_multi_draw_indirect</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDMultiDrawIndirect</a> in those cases
--   instead.
gl_AMD_multi_draw_indirect :: Bool

-- | This command is an alias for <a>glMultiDrawArraysIndirect</a>.
glMultiDrawArraysIndirectAMD :: MonadIO m => GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()

-- | This command is an alias for <a>glMultiDrawElementsIndirect</a>.
glMultiDrawElementsIndirectAMD :: MonadIO m => GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> m ()


module Graphics.GL.AMD.InterleavedElements

-- | Is the <a>AMD_interleaved_elements</a> extension supported?
glGetAMDInterleavedElements :: MonadIO m => m Bool

-- | Is the <a>AMD_interleaved_elements</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDInterleavedElements</a> in those cases
--   instead.
gl_AMD_interleaved_elements :: Bool
glVertexAttribParameteriAMD :: MonadIO m => GLuint -> GLenum -> GLint -> m ()


module Graphics.GL.AMD.GPUShaderInt64

-- | Is the <a>AMD_gpu_shader_int64</a> extension supported?
glGetAMDGPUShaderInt64 :: MonadIO m => m Bool

-- | Is the <a>AMD_gpu_shader_int64</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDGPUShaderInt64</a> in those cases
--   instead.
gl_AMD_gpu_shader_int64 :: Bool
glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()


module Graphics.GL.AMD.GPUShaderHalfFloat

-- | Is the <a>AMD_gpu_shader_half_float</a> extension supported?
glGetAMDGPUShaderHalfFloat :: MonadIO m => m Bool

-- | Is the <a>AMD_gpu_shader_half_float</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDGPUShaderHalfFloat</a> in those cases
--   instead.
gl_AMD_gpu_shader_half_float :: Bool


module Graphics.GL.AMD.FramebufferSamplePositions

-- | Is the <a>AMD_framebuffer_sample_positions</a> extension supported?
glGetAMDFramebufferSamplePositions :: MonadIO m => m Bool

-- | Is the <a>AMD_framebuffer_sample_positions</a> extension supported?
--   Note that in the presence of multiple contexts with different
--   capabilities, this might be wrong. Use
--   <a>glGetAMDFramebufferSamplePositions</a> in those cases instead.
gl_AMD_framebuffer_sample_positions :: Bool
glFramebufferSamplePositionsfvAMD :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLfloat -> m ()
glGetFramebufferParameterfvAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glGetNamedFramebufferParameterfvAMD :: MonadIO m => GLuint -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glNamedFramebufferSamplePositionsfvAMD :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()


module Graphics.GL.AMD.DrawBuffersBlend

-- | Is the <a>AMD_draw_buffers_blend</a> extension supported?
glGetAMDDrawBuffersBlend :: MonadIO m => m Bool

-- | Is the <a>AMD_draw_buffers_blend</a> extension supported? Note that in
--   the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDDrawBuffersBlend</a> in those cases
--   instead.
gl_AMD_draw_buffers_blend :: Bool

-- | This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationIndexedAMD :: MonadIO m => GLuint -> GLenum -> m ()

-- | This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFunci</a>.
glBlendFuncIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()


module Graphics.GL.AMD.DepthClampSeparate

-- | Is the <a>AMD_depth_clamp_separate</a> extension supported?
glGetAMDDepthClampSeparate :: MonadIO m => m Bool

-- | Is the <a>AMD_depth_clamp_separate</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDDepthClampSeparate</a> in those cases
--   instead.
gl_AMD_depth_clamp_separate :: Bool


module Graphics.GL.AMD.DebugOutput

-- | Is the <a>AMD_debug_output</a> extension supported?
glGetAMDDebugOutput :: MonadIO m => m Bool

-- | Is the <a>AMD_debug_output</a> extension supported? Note that in the
--   presence of multiple contexts with different capabilities, this might
--   be wrong. Use <a>glGetAMDDebugOutput</a> in those cases instead.
gl_AMD_debug_output :: Bool
glDebugMessageCallbackAMD :: MonadIO m => GLDEBUGPROCAMD -> Ptr a -> m ()
glDebugMessageEnableAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
glDebugMessageInsertAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
glGetDebugMessageLogAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> m GLuint


module Graphics.GL.AMD.BlendMinmaxFactor

-- | Is the <a>AMD_blend_minmax_factor</a> extension supported?
glGetAMDBlendMinmaxFactor :: MonadIO m => m Bool

-- | Is the <a>AMD_blend_minmax_factor</a> extension supported? Note that
--   in the presence of multiple contexts with different capabilities, this
--   might be wrong. Use <a>glGetAMDBlendMinmaxFactor</a> in those cases
--   instead.
gl_AMD_blend_minmax_factor :: Bool


-- | A convenience module, combining all raw modules containing AMD
--   extensions.
module Graphics.GL.AMD


-- | A convenience module, combining the latest OpenGL compatibility
--   profile plus all extensions.
module Graphics.GL
