    {-# OPTIONS_HADDOCK hide #-}
    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.GL.Functions.F01
    -- Copyright   :  (c) Sven Panne 2019
    -- License     :  BSD3
    --
    -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
    -- Stability   :  stable
    -- Portability :  portable
    --
    -- Raw functions from the
    -- <http://www.opengl.org/registry/ OpenGL registry>.
    --
    --------------------------------------------------------------------------------

    module Graphics.GL.Functions.F01 (
      glAccum,
      glAccumxOES,
      glAcquireKeyedMutexWin32EXT,
      glActiveProgramEXT,
      glActiveShaderProgram,
      glActiveShaderProgramEXT,
      glActiveStencilFaceEXT,
      glActiveTexture,
      glActiveTextureARB,
      glActiveVaryingNV,
      glAlphaFragmentOp1ATI,
      glAlphaFragmentOp2ATI,
      glAlphaFragmentOp3ATI,
      glAlphaFunc,
      glAlphaFuncQCOM,
      glAlphaFuncx,
      glAlphaFuncxOES,
      glAlphaToCoverageDitherControlNV,
      glApplyFramebufferAttachmentCMAAINTEL,
      glApplyTextureEXT,
      glAreProgramsResidentNV,
      glAreTexturesResident,
      glAreTexturesResidentEXT,
      glArrayElement,
      glArrayElementEXT,
      glArrayObjectATI,
      glAsyncCopyBufferSubDataNVX,
      glAsyncCopyImageSubDataNVX,
      glAsyncMarkerSGIX,
      glAttachObjectARB,
      glAttachShader,
      glBegin,
      glBeginConditionalRender,
      glBeginConditionalRenderNV,
      glBeginConditionalRenderNVX,
      glBeginFragmentShaderATI,
      glBeginOcclusionQueryNV,
      glBeginPerfMonitorAMD,
      glBeginPerfQueryINTEL,
      glBeginQuery,
      glBeginQueryARB,
      glBeginQueryEXT,
      glBeginQueryIndexed,
      glBeginTransformFeedback,
      glBeginTransformFeedbackEXT,
      glBeginTransformFeedbackNV,
      glBeginVertexShaderEXT,
      glBeginVideoCaptureNV,
      glBindAttribLocation,
      glBindAttribLocationARB,
      glBindBuffer,
      glBindBufferARB,
      glBindBufferBase,
      glBindBufferBaseEXT,
      glBindBufferBaseNV,
      glBindBufferOffsetEXT,
      glBindBufferOffsetNV,
      glBindBufferRange,
      glBindBufferRangeEXT,
      glBindBufferRangeNV,
      glBindBuffersBase,
      glBindBuffersRange,
      glBindFragDataLocation,
      glBindFragDataLocationEXT,
      glBindFragDataLocationIndexed,
      glBindFragDataLocationIndexedEXT,
      glBindFragmentShaderATI,
      glBindFramebuffer,
      glBindFramebufferEXT,
      glBindFramebufferOES,
      glBindImageTexture,
      glBindImageTextureEXT,
      glBindImageTextures,
      glBindLightParameterEXT,
      glBindMaterialParameterEXT,
      glBindMultiTextureEXT,
      glBindParameterEXT,
      glBindProgramARB,
      glBindProgramNV,
      glBindProgramPipeline,
      glBindProgramPipelineEXT,
      glBindRenderbuffer,
      glBindRenderbufferEXT,
      glBindRenderbufferOES,
      glBindSampler,
      glBindSamplers,
      glBindShadingRateImageNV,
      glBindTexGenParameterEXT,
      glBindTexture,
      glBindTextureEXT,
      glBindTextureUnit,
      glBindTextureUnitParameterEXT,
      glBindTextures,
      glBindTransformFeedback,
      glBindTransformFeedbackNV,
      glBindVertexArray,
      glBindVertexArrayAPPLE,
      glBindVertexArrayOES,
      glBindVertexBuffer,
      glBindVertexBuffers
    ) where

    import Control.Monad.IO.Class ( MonadIO(..) )
    import Foreign.Ptr
    import Graphics.GL.Foreign
    import Graphics.GL.Types
    import System.IO.Unsafe ( unsafePerformIO )

    -- glAccum ---------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glAccum.xml OpenGL 2.x>.
    glAccum
      :: MonadIO m
      => GLenum -- ^ @op@ of type [AccumOp](Graphics-GL-Groups.html#AccumOp).
      -> GLfloat -- ^ @value@ of type @CoordF@.
      -> m ()
    glAccum :: forall (m :: * -> *). MonadIO m => GLenum -> GLfloat -> m ()
    glAccum GLenum
    v1 GLfloat
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> IO ()
    dyn0 FunPtr (GLenum -> GLfloat -> IO ())
    ptr_glAccum GLenum
    v1 GLfloat
    v2

    {-# NOINLINE ptr_glAccum #-}
    ptr_glAccum :: FunPtr (GLenum -> GLfloat -> IO ())
    ptr_glAccum :: FunPtr (GLenum -> GLfloat -> IO ())
    ptr_glAccum = IO (FunPtr (GLenum -> GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAccum"

    -- glAccumxOES -----------------------------------------------------------------

    glAccumxOES
      :: MonadIO m
      => GLenum -- ^ @op@.
      -> GLfixed -- ^ @value@.
      -> m ()
    glAccumxOES :: forall (m :: * -> *). MonadIO m => GLenum -> GLfixed -> m ()
    glAccumxOES GLenum
    v1 GLfixed
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLfixed -> IO ()) -> GLenum -> GLfixed -> IO ()
    dyn1 FunPtr (GLenum -> GLfixed -> IO ())
    ptr_glAccumxOES GLenum
    v1 GLfixed
    v2

    {-# NOINLINE ptr_glAccumxOES #-}
    ptr_glAccumxOES :: FunPtr (GLenum -> GLfixed -> IO ())
    ptr_glAccumxOES :: FunPtr (GLenum -> GLfixed -> IO ())
    ptr_glAccumxOES = IO (FunPtr (GLenum -> GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLfixed -> IO ()))
     -> FunPtr (GLenum -> GLfixed -> IO ()))
    -> IO (FunPtr (GLenum -> GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAccumxOES"

    -- glAcquireKeyedMutexWin32EXT -------------------------------------------------

    glAcquireKeyedMutexWin32EXT
      :: MonadIO m
      => GLuint -- ^ @memory@.
      -> GLuint64 -- ^ @key@.
      -> GLuint -- ^ @timeout@.
      -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
    glAcquireKeyedMutexWin32EXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLuint64 -> GLenum -> m GLboolean
    glAcquireKeyedMutexWin32EXT GLenum
    v1 GLuint64
    v2 GLenum
    v3 = IO GLboolean -> m GLboolean
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLboolean -> m GLboolean) -> IO GLboolean -> m GLboolean
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean)
    -> GLenum -> GLuint64 -> GLenum -> IO GLboolean
    dyn2 FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean)
    ptr_glAcquireKeyedMutexWin32EXT GLenum
    v1 GLuint64
    v2 GLenum
    v3

    {-# NOINLINE ptr_glAcquireKeyedMutexWin32EXT #-}
    ptr_glAcquireKeyedMutexWin32EXT :: FunPtr (GLuint -> GLuint64 -> GLuint -> IO GLboolean)
    ptr_glAcquireKeyedMutexWin32EXT :: FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean)
    ptr_glAcquireKeyedMutexWin32EXT = IO (FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean))
    -> FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean))
     -> FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean))
    -> IO (FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean))
    -> FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean)
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLuint64 -> GLenum -> IO GLboolean))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAcquireKeyedMutexWin32EXT"

    -- glActiveProgramEXT ----------------------------------------------------------

    glActiveProgramEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> m ()
    glActiveProgramEXT :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glActiveProgramEXT GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glActiveProgramEXT GLenum
    v1

    {-# NOINLINE ptr_glActiveProgramEXT #-}
    ptr_glActiveProgramEXT :: FunPtr (GLuint -> IO ())
    ptr_glActiveProgramEXT :: FunPtr (GLenum -> IO ())
    ptr_glActiveProgramEXT = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glActiveProgramEXT"

    -- glActiveShaderProgram -------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glActiveShaderProgram.xhtml OpenGL 4.x>.
    glActiveShaderProgram
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> GLuint -- ^ @program@.
      -> m ()
    glActiveShaderProgram :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glActiveShaderProgram GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn4 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glActiveShaderProgram GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glActiveShaderProgram #-}
    ptr_glActiveShaderProgram :: FunPtr (GLuint -> GLuint -> IO ())
    ptr_glActiveShaderProgram :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glActiveShaderProgram = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glActiveShaderProgram"

    -- glActiveShaderProgramEXT ----------------------------------------------------

    glActiveShaderProgramEXT
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> GLuint -- ^ @program@.
      -> m ()
    glActiveShaderProgramEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glActiveShaderProgramEXT GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn4 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glActiveShaderProgramEXT GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glActiveShaderProgramEXT #-}
    ptr_glActiveShaderProgramEXT :: FunPtr (GLuint -> GLuint -> IO ())
    ptr_glActiveShaderProgramEXT :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glActiveShaderProgramEXT = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glActiveShaderProgramEXT"

    -- glActiveStencilFaceEXT ------------------------------------------------------

    glActiveStencilFaceEXT
      :: MonadIO m
      => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
      -> m ()
    glActiveStencilFaceEXT :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glActiveStencilFaceEXT GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn5 FunPtr (GLenum -> IO ())
    ptr_glActiveStencilFaceEXT GLenum
    v1

    {-# NOINLINE ptr_glActiveStencilFaceEXT #-}
    ptr_glActiveStencilFaceEXT :: FunPtr (GLenum -> IO ())
    ptr_glActiveStencilFaceEXT :: FunPtr (GLenum -> IO ())
    ptr_glActiveStencilFaceEXT = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glActiveStencilFaceEXT"

    -- glActiveTexture -------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glActiveTexture.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glActiveTexture.xhtml OpenGL 4.x>.
    glActiveTexture
      :: MonadIO m
      => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
      -> m ()
    glActiveTexture :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glActiveTexture GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn5 FunPtr (GLenum -> IO ())
    ptr_glActiveTexture GLenum
    v1

    {-# NOINLINE ptr_glActiveTexture #-}
    ptr_glActiveTexture :: FunPtr (GLenum -> IO ())
    ptr_glActiveTexture :: FunPtr (GLenum -> IO ())
    ptr_glActiveTexture = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glActiveTexture"

    -- glActiveTextureARB ----------------------------------------------------------

    -- | This command is an alias for 'glActiveTexture'.
    glActiveTextureARB
      :: MonadIO m
      => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
      -> m ()
    glActiveTextureARB :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glActiveTextureARB GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn5 FunPtr (GLenum -> IO ())
    ptr_glActiveTextureARB GLenum
    v1

    {-# NOINLINE ptr_glActiveTextureARB #-}
    ptr_glActiveTextureARB :: FunPtr (GLenum -> IO ())
    ptr_glActiveTextureARB :: FunPtr (GLenum -> IO ())
    ptr_glActiveTextureARB = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glActiveTextureARB"

    -- glActiveVaryingNV -----------------------------------------------------------

    glActiveVaryingNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
      -> m ()
    glActiveVaryingNV :: forall (m :: * -> *). MonadIO m => GLenum -> Ptr GLchar -> m ()
    glActiveVaryingNV GLenum
    v1 Ptr GLchar
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> Ptr GLchar -> IO ())
    -> GLenum -> Ptr GLchar -> IO ()
    dyn6 FunPtr (GLenum -> Ptr GLchar -> IO ())
    ptr_glActiveVaryingNV GLenum
    v1 Ptr GLchar
    v2

    {-# NOINLINE ptr_glActiveVaryingNV #-}
    ptr_glActiveVaryingNV :: FunPtr (GLuint -> Ptr GLchar -> IO ())
    ptr_glActiveVaryingNV :: FunPtr (GLenum -> Ptr GLchar -> IO ())
    ptr_glActiveVaryingNV = IO (FunPtr (GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> Ptr GLchar -> IO ()))
    -> IO (FunPtr (GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glActiveVaryingNV"

    -- glAlphaFragmentOp1ATI -------------------------------------------------------

    glAlphaFragmentOp1ATI
      :: MonadIO m
      => GLenum -- ^ @op@ of type [FragmentOpATI](Graphics-GL-Groups.html#FragmentOpATI).
      -> GLuint -- ^ @dst@.
      -> GLuint -- ^ @dstMod@.
      -> GLuint -- ^ @arg1@.
      -> GLuint -- ^ @arg1Rep@.
      -> GLuint -- ^ @arg1Mod@.
      -> m ()
    glAlphaFragmentOp1ATI :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
    glAlphaFragmentOp1ATI GLenum
    v1 GLenum
    v2 GLenum
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> IO ()
    dyn7 FunPtr
      (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
    ptr_glAlphaFragmentOp1ATI GLenum
    v1 GLenum
    v2 GLenum
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6

    {-# NOINLINE ptr_glAlphaFragmentOp1ATI #-}
    ptr_glAlphaFragmentOp1ATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glAlphaFragmentOp1ATI :: FunPtr
      (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
    ptr_glAlphaFragmentOp1ATI = IO
      (FunPtr
         (GLenum
          -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
     -> FunPtr
          (GLenum
           -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAlphaFragmentOp1ATI"

    -- glAlphaFragmentOp2ATI -------------------------------------------------------

    glAlphaFragmentOp2ATI
      :: MonadIO m
      => GLenum -- ^ @op@ of type [FragmentOpATI](Graphics-GL-Groups.html#FragmentOpATI).
      -> GLuint -- ^ @dst@.
      -> GLuint -- ^ @dstMod@.
      -> GLuint -- ^ @arg1@.
      -> GLuint -- ^ @arg1Rep@.
      -> GLuint -- ^ @arg1Mod@.
      -> GLuint -- ^ @arg2@.
      -> GLuint -- ^ @arg2Rep@.
      -> GLuint -- ^ @arg2Mod@.
      -> m ()
    glAlphaFragmentOp2ATI :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> m ()
    glAlphaFragmentOp2ATI GLenum
    v1 GLenum
    v2 GLenum
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6 GLenum
    v7 GLenum
    v8 GLenum
    v9 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> IO ())
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> IO ()
    dyn8 FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> IO ())
    ptr_glAlphaFragmentOp2ATI GLenum
    v1 GLenum
    v2 GLenum
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6 GLenum
    v7 GLenum
    v8 GLenum
    v9

    {-# NOINLINE ptr_glAlphaFragmentOp2ATI #-}
    ptr_glAlphaFragmentOp2ATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glAlphaFragmentOp2ATI :: FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> IO ())
    ptr_glAlphaFragmentOp2ATI = IO
      (FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> IO ()))
     -> FunPtr
          (GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAlphaFragmentOp2ATI"

    -- glAlphaFragmentOp3ATI -------------------------------------------------------

    glAlphaFragmentOp3ATI
      :: MonadIO m
      => GLenum -- ^ @op@ of type [FragmentOpATI](Graphics-GL-Groups.html#FragmentOpATI).
      -> GLuint -- ^ @dst@.
      -> GLuint -- ^ @dstMod@.
      -> GLuint -- ^ @arg1@.
      -> GLuint -- ^ @arg1Rep@.
      -> GLuint -- ^ @arg1Mod@.
      -> GLuint -- ^ @arg2@.
      -> GLuint -- ^ @arg2Rep@.
      -> GLuint -- ^ @arg2Mod@.
      -> GLuint -- ^ @arg3@.
      -> GLuint -- ^ @arg3Rep@.
      -> GLuint -- ^ @arg3Mod@.
      -> m ()
    glAlphaFragmentOp3ATI :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> m ()
    glAlphaFragmentOp3ATI GLenum
    v1 GLenum
    v2 GLenum
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6 GLenum
    v7 GLenum
    v8 GLenum
    v9 GLenum
    v10 GLenum
    v11 GLenum
    v12 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> IO ())
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> IO ()
    dyn9 FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> IO ())
    ptr_glAlphaFragmentOp3ATI GLenum
    v1 GLenum
    v2 GLenum
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6 GLenum
    v7 GLenum
    v8 GLenum
    v9 GLenum
    v10 GLenum
    v11 GLenum
    v12

    {-# NOINLINE ptr_glAlphaFragmentOp3ATI #-}
    ptr_glAlphaFragmentOp3ATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glAlphaFragmentOp3ATI :: FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> IO ())
    ptr_glAlphaFragmentOp3ATI = IO
      (FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> IO ()))
     -> FunPtr
          (GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAlphaFragmentOp3ATI"

    -- glAlphaFunc -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml OpenGL 2.x>.
    glAlphaFunc
      :: MonadIO m
      => GLenum -- ^ @func@ of type [AlphaFunction](Graphics-GL-Groups.html#AlphaFunction).
      -> GLfloat -- ^ @ref@.
      -> m ()
    glAlphaFunc :: forall (m :: * -> *). MonadIO m => GLenum -> GLfloat -> m ()
    glAlphaFunc GLenum
    v1 GLfloat
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> IO ()
    dyn0 FunPtr (GLenum -> GLfloat -> IO ())
    ptr_glAlphaFunc GLenum
    v1 GLfloat
    v2

    {-# NOINLINE ptr_glAlphaFunc #-}
    ptr_glAlphaFunc :: FunPtr (GLenum -> GLfloat -> IO ())
    ptr_glAlphaFunc :: FunPtr (GLenum -> GLfloat -> IO ())
    ptr_glAlphaFunc = IO (FunPtr (GLenum -> GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAlphaFunc"

    -- glAlphaFuncQCOM -------------------------------------------------------------

    glAlphaFuncQCOM
      :: MonadIO m
      => GLenum -- ^ @func@.
      -> GLclampf -- ^ @ref@.
      -> m ()
    glAlphaFuncQCOM :: forall (m :: * -> *). MonadIO m => GLenum -> GLfloat -> m ()
    glAlphaFuncQCOM GLenum
    v1 GLfloat
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> IO ()
    dyn10 FunPtr (GLenum -> GLfloat -> IO ())
    ptr_glAlphaFuncQCOM GLenum
    v1 GLfloat
    v2

    {-# NOINLINE ptr_glAlphaFuncQCOM #-}
    ptr_glAlphaFuncQCOM :: FunPtr (GLenum -> GLclampf -> IO ())
    ptr_glAlphaFuncQCOM :: FunPtr (GLenum -> GLfloat -> IO ())
    ptr_glAlphaFuncQCOM = IO (FunPtr (GLenum -> GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAlphaFuncQCOM"

    -- glAlphaFuncx ----------------------------------------------------------------

    glAlphaFuncx
      :: MonadIO m
      => GLenum -- ^ @func@ of type [AlphaFunction](Graphics-GL-Groups.html#AlphaFunction).
      -> GLfixed -- ^ @ref@.
      -> m ()
    glAlphaFuncx :: forall (m :: * -> *). MonadIO m => GLenum -> GLfixed -> m ()
    glAlphaFuncx GLenum
    v1 GLfixed
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLfixed -> IO ()) -> GLenum -> GLfixed -> IO ()
    dyn1 FunPtr (GLenum -> GLfixed -> IO ())
    ptr_glAlphaFuncx GLenum
    v1 GLfixed
    v2

    {-# NOINLINE ptr_glAlphaFuncx #-}
    ptr_glAlphaFuncx :: FunPtr (GLenum -> GLfixed -> IO ())
    ptr_glAlphaFuncx :: FunPtr (GLenum -> GLfixed -> IO ())
    ptr_glAlphaFuncx = IO (FunPtr (GLenum -> GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLfixed -> IO ()))
     -> FunPtr (GLenum -> GLfixed -> IO ()))
    -> IO (FunPtr (GLenum -> GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAlphaFuncx"

    -- glAlphaFuncxOES -------------------------------------------------------------

    glAlphaFuncxOES
      :: MonadIO m
      => GLenum -- ^ @func@ of type [AlphaFunction](Graphics-GL-Groups.html#AlphaFunction).
      -> GLfixed -- ^ @ref@ of type @ClampedFixed@.
      -> m ()
    glAlphaFuncxOES :: forall (m :: * -> *). MonadIO m => GLenum -> GLfixed -> m ()
    glAlphaFuncxOES GLenum
    v1 GLfixed
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLfixed -> IO ()) -> GLenum -> GLfixed -> IO ()
    dyn1 FunPtr (GLenum -> GLfixed -> IO ())
    ptr_glAlphaFuncxOES GLenum
    v1 GLfixed
    v2

    {-# NOINLINE ptr_glAlphaFuncxOES #-}
    ptr_glAlphaFuncxOES :: FunPtr (GLenum -> GLfixed -> IO ())
    ptr_glAlphaFuncxOES :: FunPtr (GLenum -> GLfixed -> IO ())
    ptr_glAlphaFuncxOES = IO (FunPtr (GLenum -> GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLfixed -> IO ()))
     -> FunPtr (GLenum -> GLfixed -> IO ()))
    -> IO (FunPtr (GLenum -> GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAlphaFuncxOES"

    -- glAlphaToCoverageDitherControlNV --------------------------------------------

    glAlphaToCoverageDitherControlNV
      :: MonadIO m
      => GLenum -- ^ @mode@.
      -> m ()
    glAlphaToCoverageDitherControlNV :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glAlphaToCoverageDitherControlNV GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn5 FunPtr (GLenum -> IO ())
    ptr_glAlphaToCoverageDitherControlNV GLenum
    v1

    {-# NOINLINE ptr_glAlphaToCoverageDitherControlNV #-}
    ptr_glAlphaToCoverageDitherControlNV :: FunPtr (GLenum -> IO ())
    ptr_glAlphaToCoverageDitherControlNV :: FunPtr (GLenum -> IO ())
    ptr_glAlphaToCoverageDitherControlNV = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAlphaToCoverageDitherControlNV"

    -- glApplyFramebufferAttachmentCMAAINTEL ---------------------------------------

    glApplyFramebufferAttachmentCMAAINTEL
      :: MonadIO m
      => m ()
    glApplyFramebufferAttachmentCMAAINTEL :: forall (m :: * -> *). MonadIO m => m ()
    glApplyFramebufferAttachmentCMAAINTEL = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (IO ()) -> IO ()
    dyn11 FunPtr (IO ())
    ptr_glApplyFramebufferAttachmentCMAAINTEL

    {-# NOINLINE ptr_glApplyFramebufferAttachmentCMAAINTEL #-}
    ptr_glApplyFramebufferAttachmentCMAAINTEL :: FunPtr (IO ())
    ptr_glApplyFramebufferAttachmentCMAAINTEL :: FunPtr (IO ())
    ptr_glApplyFramebufferAttachmentCMAAINTEL = IO (FunPtr (IO ())) -> FunPtr (IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (IO ())) -> FunPtr (IO ()))
    -> IO (FunPtr (IO ())) -> FunPtr (IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glApplyFramebufferAttachmentCMAAINTEL"

    -- glApplyTextureEXT -----------------------------------------------------------

    glApplyTextureEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [LightTextureModeEXT](Graphics-GL-Groups.html#LightTextureModeEXT).
      -> m ()
    glApplyTextureEXT :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glApplyTextureEXT GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn5 FunPtr (GLenum -> IO ())
    ptr_glApplyTextureEXT GLenum
    v1

    {-# NOINLINE ptr_glApplyTextureEXT #-}
    ptr_glApplyTextureEXT :: FunPtr (GLenum -> IO ())
    ptr_glApplyTextureEXT :: FunPtr (GLenum -> IO ())
    ptr_glApplyTextureEXT = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glApplyTextureEXT"

    -- glAreProgramsResidentNV -----------------------------------------------------

    glAreProgramsResidentNV
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @programs@ pointing to @n@ elements of type @GLuint@.
      -> Ptr GLboolean -- ^ @residences@ pointing to @n@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
    glAreProgramsResidentNV :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei -> Ptr GLenum -> Ptr GLboolean -> m GLboolean
    glAreProgramsResidentNV GLsizei
    v1 Ptr GLenum
    v2 Ptr GLboolean
    v3 = IO GLboolean -> m GLboolean
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLboolean -> m GLboolean) -> IO GLboolean -> m GLboolean
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    -> GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean
    dyn12 FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    ptr_glAreProgramsResidentNV GLsizei
    v1 Ptr GLenum
    v2 Ptr GLboolean
    v3

    {-# NOINLINE ptr_glAreProgramsResidentNV #-}
    ptr_glAreProgramsResidentNV :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
    ptr_glAreProgramsResidentNV :: FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    ptr_glAreProgramsResidentNV = IO
      (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    -> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
     -> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    -> IO
         (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    -> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAreProgramsResidentNV"

    -- glAreTexturesResident -------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glAreTexturesResident.xml OpenGL 2.x>.
    glAreTexturesResident
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
      -> Ptr GLboolean -- ^ @residences@ pointing to @n@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
    glAreTexturesResident :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei -> Ptr GLenum -> Ptr GLboolean -> m GLboolean
    glAreTexturesResident GLsizei
    v1 Ptr GLenum
    v2 Ptr GLboolean
    v3 = IO GLboolean -> m GLboolean
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLboolean -> m GLboolean) -> IO GLboolean -> m GLboolean
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    -> GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean
    dyn12 FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    ptr_glAreTexturesResident GLsizei
    v1 Ptr GLenum
    v2 Ptr GLboolean
    v3

    {-# NOINLINE ptr_glAreTexturesResident #-}
    ptr_glAreTexturesResident :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
    ptr_glAreTexturesResident :: FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    ptr_glAreTexturesResident = IO
      (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    -> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
     -> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    -> IO
         (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    -> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAreTexturesResident"

    -- glAreTexturesResidentEXT ----------------------------------------------------

    glAreTexturesResidentEXT
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
      -> Ptr GLboolean -- ^ @residences@ pointing to @n@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
    glAreTexturesResidentEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei -> Ptr GLenum -> Ptr GLboolean -> m GLboolean
    glAreTexturesResidentEXT GLsizei
    v1 Ptr GLenum
    v2 Ptr GLboolean
    v3 = IO GLboolean -> m GLboolean
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLboolean -> m GLboolean) -> IO GLboolean -> m GLboolean
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    -> GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean
    dyn12 FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    ptr_glAreTexturesResidentEXT GLsizei
    v1 Ptr GLenum
    v2 Ptr GLboolean
    v3

    {-# NOINLINE ptr_glAreTexturesResidentEXT #-}
    ptr_glAreTexturesResidentEXT :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
    ptr_glAreTexturesResidentEXT :: FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    ptr_glAreTexturesResidentEXT = IO
      (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    -> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
     -> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    -> IO
         (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    -> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAreTexturesResidentEXT"

    -- glArrayElement --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glArrayElement.xml OpenGL 2.x>.
    glArrayElement
      :: MonadIO m
      => GLint -- ^ @i@.
      -> m ()
    glArrayElement :: forall (m :: * -> *). MonadIO m => GLsizei -> m ()
    glArrayElement GLsizei
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> IO ()) -> GLsizei -> IO ()
    dyn13 FunPtr (GLsizei -> IO ())
    ptr_glArrayElement GLsizei
    v1

    {-# NOINLINE ptr_glArrayElement #-}
    ptr_glArrayElement :: FunPtr (GLint -> IO ())
    ptr_glArrayElement :: FunPtr (GLsizei -> IO ())
    ptr_glArrayElement = IO (FunPtr (GLsizei -> IO ())) -> FunPtr (GLsizei -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLsizei -> IO ())) -> FunPtr (GLsizei -> IO ()))
    -> IO (FunPtr (GLsizei -> IO ())) -> FunPtr (GLsizei -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLsizei -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glArrayElement"

    -- glArrayElementEXT -----------------------------------------------------------

    -- | This command is an alias for 'glArrayElement'.
    glArrayElementEXT
      :: MonadIO m
      => GLint -- ^ @i@.
      -> m ()
    glArrayElementEXT :: forall (m :: * -> *). MonadIO m => GLsizei -> m ()
    glArrayElementEXT GLsizei
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> IO ()) -> GLsizei -> IO ()
    dyn13 FunPtr (GLsizei -> IO ())
    ptr_glArrayElementEXT GLsizei
    v1

    {-# NOINLINE ptr_glArrayElementEXT #-}
    ptr_glArrayElementEXT :: FunPtr (GLint -> IO ())
    ptr_glArrayElementEXT :: FunPtr (GLsizei -> IO ())
    ptr_glArrayElementEXT = IO (FunPtr (GLsizei -> IO ())) -> FunPtr (GLsizei -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLsizei -> IO ())) -> FunPtr (GLsizei -> IO ()))
    -> IO (FunPtr (GLsizei -> IO ())) -> FunPtr (GLsizei -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLsizei -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glArrayElementEXT"

    -- glArrayObjectATI ------------------------------------------------------------

    glArrayObjectATI
      :: MonadIO m
      => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [ScalarType](Graphics-GL-Groups.html#ScalarType).
      -> GLsizei -- ^ @stride@.
      -> GLuint -- ^ @buffer@.
      -> GLuint -- ^ @offset@.
      -> m ()
    glArrayObjectATI :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> m ()
    glArrayObjectATI GLenum
    v1 GLsizei
    v2 GLenum
    v3 GLsizei
    v4 GLenum
    v5 GLenum
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ())
    -> GLenum
    -> GLsizei
    -> GLenum
    -> GLsizei
    -> GLenum
    -> GLenum
    -> IO ()
    dyn14 FunPtr
      (GLenum
       -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ())
    ptr_glArrayObjectATI GLenum
    v1 GLsizei
    v2 GLenum
    v3 GLsizei
    v4 GLenum
    v5 GLenum
    v6

    {-# NOINLINE ptr_glArrayObjectATI #-}
    ptr_glArrayObjectATI :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
    ptr_glArrayObjectATI :: FunPtr
      (GLenum
       -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ())
    ptr_glArrayObjectATI = IO
      (FunPtr
         (GLenum
          -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ()))
    -> FunPtr
         (GLenum
          -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ()))
     -> FunPtr
          (GLenum
           -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ()))
    -> FunPtr
         (GLenum
          -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLsizei -> GLenum -> GLsizei -> GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glArrayObjectATI"

    -- glAsyncCopyBufferSubDataNVX -------------------------------------------------

    glAsyncCopyBufferSubDataNVX
      :: MonadIO m
      => GLsizei -- ^ @waitSemaphoreCount@.
      -> Ptr GLuint -- ^ @waitSemaphoreArray@ pointing to @waitSemaphoreCount@ elements of type @GLuint@.
      -> Ptr GLuint64 -- ^ @fenceValueArray@ pointing to @waitSemaphoreCount@ elements of type @GLuint64@.
      -> GLuint -- ^ @readGpu@.
      -> GLbitfield -- ^ @writeGpuMask@.
      -> GLuint -- ^ @readBuffer@.
      -> GLuint -- ^ @writeBuffer@.
      -> GLintptr -- ^ @readOffset@.
      -> GLintptr -- ^ @writeOffset@.
      -> GLsizeiptr -- ^ @size@.
      -> GLsizei -- ^ @signalSemaphoreCount@.
      -> Ptr GLuint -- ^ @signalSemaphoreArray@ pointing to @signalSemaphoreCount@ elements of type @GLuint@.
      -> Ptr GLuint64 -- ^ @signalValueArray@ pointing to @signalSemaphoreCount@ elements of type @GLuint64@.
      -> m GLuint
    glAsyncCopyBufferSubDataNVX :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei
    -> Ptr GLenum
    -> Ptr GLuint64
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLintptr
    -> GLintptr
    -> GLintptr
    -> GLsizei
    -> Ptr GLenum
    -> Ptr GLuint64
    -> m GLenum
    glAsyncCopyBufferSubDataNVX GLsizei
    v1 Ptr GLenum
    v2 Ptr GLuint64
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6 GLenum
    v7 GLintptr
    v8 GLintptr
    v9 GLintptr
    v10 GLsizei
    v11 Ptr GLenum
    v12 Ptr GLuint64
    v13 = IO GLenum -> m GLenum
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLenum -> m GLenum) -> IO GLenum -> m GLenum
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLintptr
       -> GLintptr
       -> GLintptr
       -> GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> IO GLenum)
    -> GLsizei
    -> Ptr GLenum
    -> Ptr GLuint64
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLintptr
    -> GLintptr
    -> GLintptr
    -> GLsizei
    -> Ptr GLenum
    -> Ptr GLuint64
    -> IO GLenum
    dyn15 FunPtr
      (GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLintptr
       -> GLintptr
       -> GLintptr
       -> GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> IO GLenum)
    ptr_glAsyncCopyBufferSubDataNVX GLsizei
    v1 Ptr GLenum
    v2 Ptr GLuint64
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6 GLenum
    v7 GLintptr
    v8 GLintptr
    v9 GLintptr
    v10 GLsizei
    v11 Ptr GLenum
    v12 Ptr GLuint64
    v13

    {-# NOINLINE ptr_glAsyncCopyBufferSubDataNVX #-}
    ptr_glAsyncCopyBufferSubDataNVX :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLuint64 -> GLuint -> GLbitfield -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO GLuint)
    ptr_glAsyncCopyBufferSubDataNVX :: FunPtr
      (GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLintptr
       -> GLintptr
       -> GLintptr
       -> GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> IO GLenum)
    ptr_glAsyncCopyBufferSubDataNVX = IO
      (FunPtr
         (GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLintptr
          -> GLintptr
          -> GLintptr
          -> GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> IO GLenum))
    -> FunPtr
         (GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLintptr
          -> GLintptr
          -> GLintptr
          -> GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> IO GLenum)
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLsizei
           -> Ptr GLenum
           -> Ptr GLuint64
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLintptr
           -> GLintptr
           -> GLintptr
           -> GLsizei
           -> Ptr GLenum
           -> Ptr GLuint64
           -> IO GLenum))
     -> FunPtr
          (GLsizei
           -> Ptr GLenum
           -> Ptr GLuint64
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLintptr
           -> GLintptr
           -> GLintptr
           -> GLsizei
           -> Ptr GLenum
           -> Ptr GLuint64
           -> IO GLenum))
    -> IO
         (FunPtr
            (GLsizei
             -> Ptr GLenum
             -> Ptr GLuint64
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLintptr
             -> GLintptr
             -> GLintptr
             -> GLsizei
             -> Ptr GLenum
             -> Ptr GLuint64
             -> IO GLenum))
    -> FunPtr
         (GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLintptr
          -> GLintptr
          -> GLintptr
          -> GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> IO GLenum)
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLsizei
             -> Ptr GLenum
             -> Ptr GLuint64
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLintptr
             -> GLintptr
             -> GLintptr
             -> GLsizei
             -> Ptr GLenum
             -> Ptr GLuint64
             -> IO GLenum))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAsyncCopyBufferSubDataNVX"

    -- glAsyncCopyImageSubDataNVX --------------------------------------------------

    glAsyncCopyImageSubDataNVX
      :: MonadIO m
      => GLsizei -- ^ @waitSemaphoreCount@.
      -> Ptr GLuint -- ^ @waitSemaphoreArray@ pointing to @waitSemaphoreCount@ elements of type @GLuint@.
      -> Ptr GLuint64 -- ^ @waitValueArray@ pointing to @waitSemaphoreCount@ elements of type @GLuint64@.
      -> GLuint -- ^ @srcGpu@.
      -> GLbitfield -- ^ @dstGpuMask@.
      -> GLuint -- ^ @srcName@.
      -> GLenum -- ^ @srcTarget@.
      -> GLint -- ^ @srcLevel@.
      -> GLint -- ^ @srcX@.
      -> GLint -- ^ @srcY@.
      -> GLint -- ^ @srcZ@.
      -> GLuint -- ^ @dstName@.
      -> GLenum -- ^ @dstTarget@.
      -> GLint -- ^ @dstLevel@.
      -> GLint -- ^ @dstX@.
      -> GLint -- ^ @dstY@.
      -> GLint -- ^ @dstZ@.
      -> GLsizei -- ^ @srcWidth@.
      -> GLsizei -- ^ @srcHeight@.
      -> GLsizei -- ^ @srcDepth@.
      -> GLsizei -- ^ @signalSemaphoreCount@.
      -> Ptr GLuint -- ^ @signalSemaphoreArray@ pointing to @signalSemaphoreCount@ elements of type @GLuint@.
      -> Ptr GLuint64 -- ^ @signalValueArray@ pointing to @signalSemaphoreCount@ elements of type @GLuint64@.
      -> m GLuint
    glAsyncCopyImageSubDataNVX :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei
    -> Ptr GLenum
    -> Ptr GLuint64
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLenum
    -> GLenum
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> Ptr GLenum
    -> Ptr GLuint64
    -> m GLenum
    glAsyncCopyImageSubDataNVX GLsizei
    v1 Ptr GLenum
    v2 Ptr GLuint64
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6 GLenum
    v7 GLsizei
    v8 GLsizei
    v9 GLsizei
    v10 GLsizei
    v11 GLenum
    v12 GLenum
    v13 GLsizei
    v14 GLsizei
    v15 GLsizei
    v16 GLsizei
    v17 GLsizei
    v18 GLsizei
    v19 GLsizei
    v20 GLsizei
    v21 Ptr GLenum
    v22 Ptr GLuint64
    v23 = IO GLenum -> m GLenum
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLenum -> m GLenum) -> IO GLenum -> m GLenum
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLenum
       -> GLenum
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> IO GLenum)
    -> GLsizei
    -> Ptr GLenum
    -> Ptr GLuint64
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLenum
    -> GLenum
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> Ptr GLenum
    -> Ptr GLuint64
    -> IO GLenum
    dyn16 FunPtr
      (GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLenum
       -> GLenum
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> IO GLenum)
    ptr_glAsyncCopyImageSubDataNVX GLsizei
    v1 Ptr GLenum
    v2 Ptr GLuint64
    v3 GLenum
    v4 GLenum
    v5 GLenum
    v6 GLenum
    v7 GLsizei
    v8 GLsizei
    v9 GLsizei
    v10 GLsizei
    v11 GLenum
    v12 GLenum
    v13 GLsizei
    v14 GLsizei
    v15 GLsizei
    v16 GLsizei
    v17 GLsizei
    v18 GLsizei
    v19 GLsizei
    v20 GLsizei
    v21 Ptr GLenum
    v22 Ptr GLuint64
    v23

    {-# NOINLINE ptr_glAsyncCopyImageSubDataNVX #-}
    ptr_glAsyncCopyImageSubDataNVX :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLuint64 -> GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO GLuint)
    ptr_glAsyncCopyImageSubDataNVX :: FunPtr
      (GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLenum
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLenum
       -> GLenum
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> Ptr GLenum
       -> Ptr GLuint64
       -> IO GLenum)
    ptr_glAsyncCopyImageSubDataNVX = IO
      (FunPtr
         (GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLenum
          -> GLenum
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> IO GLenum))
    -> FunPtr
         (GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLenum
          -> GLenum
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> IO GLenum)
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLsizei
           -> Ptr GLenum
           -> Ptr GLuint64
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLenum
           -> GLenum
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> Ptr GLenum
           -> Ptr GLuint64
           -> IO GLenum))
     -> FunPtr
          (GLsizei
           -> Ptr GLenum
           -> Ptr GLuint64
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLenum
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLenum
           -> GLenum
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> GLsizei
           -> Ptr GLenum
           -> Ptr GLuint64
           -> IO GLenum))
    -> IO
         (FunPtr
            (GLsizei
             -> Ptr GLenum
             -> Ptr GLuint64
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLenum
             -> GLenum
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> Ptr GLenum
             -> Ptr GLuint64
             -> IO GLenum))
    -> FunPtr
         (GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLenum
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLenum
          -> GLenum
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> GLsizei
          -> Ptr GLenum
          -> Ptr GLuint64
          -> IO GLenum)
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLsizei
             -> Ptr GLenum
             -> Ptr GLuint64
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLenum
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLenum
             -> GLenum
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> GLsizei
             -> Ptr GLenum
             -> Ptr GLuint64
             -> IO GLenum))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAsyncCopyImageSubDataNVX"

    -- glAsyncMarkerSGIX -----------------------------------------------------------

    glAsyncMarkerSGIX
      :: MonadIO m
      => GLuint -- ^ @marker@.
      -> m ()
    glAsyncMarkerSGIX :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glAsyncMarkerSGIX GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glAsyncMarkerSGIX GLenum
    v1

    {-# NOINLINE ptr_glAsyncMarkerSGIX #-}
    ptr_glAsyncMarkerSGIX :: FunPtr (GLuint -> IO ())
    ptr_glAsyncMarkerSGIX :: FunPtr (GLenum -> IO ())
    ptr_glAsyncMarkerSGIX = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAsyncMarkerSGIX"

    -- glAttachObjectARB -----------------------------------------------------------

    -- | This command is an alias for 'glAttachShader'.
    glAttachObjectARB
      :: MonadIO m
      => GLhandleARB -- ^ @containerObj@ of type @handleARB@.
      -> GLhandleARB -- ^ @obj@ of type @handleARB@.
      -> m ()
    glAttachObjectARB :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glAttachObjectARB GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn17 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glAttachObjectARB GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glAttachObjectARB #-}
    ptr_glAttachObjectARB :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
    ptr_glAttachObjectARB :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glAttachObjectARB = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAttachObjectARB"

    -- glAttachShader --------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glAttachShader.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glAttachShader.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glAttachShader.xhtml OpenGL 4.x>.
    glAttachShader
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @shader@.
      -> m ()
    glAttachShader :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glAttachShader GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn4 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glAttachShader GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glAttachShader #-}
    ptr_glAttachShader :: FunPtr (GLuint -> GLuint -> IO ())
    ptr_glAttachShader :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glAttachShader = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glAttachShader"

    -- glBegin ---------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml OpenGL 2.x>.
    glBegin
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> m ()
    glBegin :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBegin GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn5 FunPtr (GLenum -> IO ())
    ptr_glBegin GLenum
    v1

    {-# NOINLINE ptr_glBegin #-}
    ptr_glBegin :: FunPtr (GLenum -> IO ())
    ptr_glBegin :: FunPtr (GLenum -> IO ())
    ptr_glBegin = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBegin"

    -- glBeginConditionalRender ----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBeginConditionalRender.xhtml OpenGL 4.x>.
    glBeginConditionalRender
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @mode@ of type [ConditionalRenderMode](Graphics-GL-Groups.html#ConditionalRenderMode).
      -> m ()
    glBeginConditionalRender :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBeginConditionalRender GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn18 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginConditionalRender GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBeginConditionalRender #-}
    ptr_glBeginConditionalRender :: FunPtr (GLuint -> GLenum -> IO ())
    ptr_glBeginConditionalRender :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginConditionalRender = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginConditionalRender"

    -- glBeginConditionalRenderNV --------------------------------------------------

    -- | This command is an alias for 'glBeginConditionalRender'.
    glBeginConditionalRenderNV
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @mode@ of type [ConditionalRenderMode](Graphics-GL-Groups.html#ConditionalRenderMode).
      -> m ()
    glBeginConditionalRenderNV :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBeginConditionalRenderNV GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn18 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginConditionalRenderNV GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBeginConditionalRenderNV #-}
    ptr_glBeginConditionalRenderNV :: FunPtr (GLuint -> GLenum -> IO ())
    ptr_glBeginConditionalRenderNV :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginConditionalRenderNV = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginConditionalRenderNV"

    -- glBeginConditionalRenderNVX -------------------------------------------------

    glBeginConditionalRenderNVX
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> m ()
    glBeginConditionalRenderNVX :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBeginConditionalRenderNVX GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBeginConditionalRenderNVX GLenum
    v1

    {-# NOINLINE ptr_glBeginConditionalRenderNVX #-}
    ptr_glBeginConditionalRenderNVX :: FunPtr (GLuint -> IO ())
    ptr_glBeginConditionalRenderNVX :: FunPtr (GLenum -> IO ())
    ptr_glBeginConditionalRenderNVX = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginConditionalRenderNVX"

    -- glBeginFragmentShaderATI ----------------------------------------------------

    glBeginFragmentShaderATI
      :: MonadIO m
      => m ()
    glBeginFragmentShaderATI :: forall (m :: * -> *). MonadIO m => m ()
    glBeginFragmentShaderATI = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (IO ()) -> IO ()
    dyn11 FunPtr (IO ())
    ptr_glBeginFragmentShaderATI

    {-# NOINLINE ptr_glBeginFragmentShaderATI #-}
    ptr_glBeginFragmentShaderATI :: FunPtr (IO ())
    ptr_glBeginFragmentShaderATI :: FunPtr (IO ())
    ptr_glBeginFragmentShaderATI = IO (FunPtr (IO ())) -> FunPtr (IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (IO ())) -> FunPtr (IO ()))
    -> IO (FunPtr (IO ())) -> FunPtr (IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginFragmentShaderATI"

    -- glBeginOcclusionQueryNV -----------------------------------------------------

    glBeginOcclusionQueryNV
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> m ()
    glBeginOcclusionQueryNV :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBeginOcclusionQueryNV GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBeginOcclusionQueryNV GLenum
    v1

    {-# NOINLINE ptr_glBeginOcclusionQueryNV #-}
    ptr_glBeginOcclusionQueryNV :: FunPtr (GLuint -> IO ())
    ptr_glBeginOcclusionQueryNV :: FunPtr (GLenum -> IO ())
    ptr_glBeginOcclusionQueryNV = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginOcclusionQueryNV"

    -- glBeginPerfMonitorAMD -------------------------------------------------------

    glBeginPerfMonitorAMD
      :: MonadIO m
      => GLuint -- ^ @monitor@.
      -> m ()
    glBeginPerfMonitorAMD :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBeginPerfMonitorAMD GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBeginPerfMonitorAMD GLenum
    v1

    {-# NOINLINE ptr_glBeginPerfMonitorAMD #-}
    ptr_glBeginPerfMonitorAMD :: FunPtr (GLuint -> IO ())
    ptr_glBeginPerfMonitorAMD :: FunPtr (GLenum -> IO ())
    ptr_glBeginPerfMonitorAMD = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginPerfMonitorAMD"

    -- glBeginPerfQueryINTEL -------------------------------------------------------

    glBeginPerfQueryINTEL
      :: MonadIO m
      => GLuint -- ^ @queryHandle@.
      -> m ()
    glBeginPerfQueryINTEL :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBeginPerfQueryINTEL GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBeginPerfQueryINTEL GLenum
    v1

    {-# NOINLINE ptr_glBeginPerfQueryINTEL #-}
    ptr_glBeginPerfQueryINTEL :: FunPtr (GLuint -> IO ())
    ptr_glBeginPerfQueryINTEL :: FunPtr (GLenum -> IO ())
    ptr_glBeginPerfQueryINTEL = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginPerfQueryINTEL"

    -- glBeginQuery ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBeginQuery.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBeginQuery.xhtml OpenGL 4.x>.
    glBeginQuery
      :: MonadIO m
      => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
      -> GLuint -- ^ @id@.
      -> m ()
    glBeginQuery :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBeginQuery GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginQuery GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBeginQuery #-}
    ptr_glBeginQuery :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBeginQuery :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginQuery = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginQuery"

    -- glBeginQueryARB -------------------------------------------------------------

    -- | This command is an alias for 'glBeginQuery'.
    glBeginQueryARB
      :: MonadIO m
      => GLenum -- ^ @target@.
      -> GLuint -- ^ @id@.
      -> m ()
    glBeginQueryARB :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBeginQueryARB GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginQueryARB GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBeginQueryARB #-}
    ptr_glBeginQueryARB :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBeginQueryARB :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginQueryARB = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginQueryARB"

    -- glBeginQueryEXT -------------------------------------------------------------

    glBeginQueryEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
      -> GLuint -- ^ @id@.
      -> m ()
    glBeginQueryEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBeginQueryEXT GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginQueryEXT GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBeginQueryEXT #-}
    ptr_glBeginQueryEXT :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBeginQueryEXT :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBeginQueryEXT = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginQueryEXT"

    -- glBeginQueryIndexed ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBeginQueryIndexed.xhtml OpenGL 4.x>.
    glBeginQueryIndexed
      :: MonadIO m
      => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @id@.
      -> m ()
    glBeginQueryIndexed :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> m ()
    glBeginQueryIndexed GLenum
    v1 GLenum
    v2 GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    -> GLenum -> GLenum -> GLenum -> IO ()
    dyn20 FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBeginQueryIndexed GLenum
    v1 GLenum
    v2 GLenum
    v3

    {-# NOINLINE ptr_glBeginQueryIndexed #-}
    ptr_glBeginQueryIndexed :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
    ptr_glBeginQueryIndexed :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBeginQueryIndexed = IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginQueryIndexed"

    -- glBeginTransformFeedback ----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBeginTransformFeedback.xhtml OpenGL 4.x>.
    glBeginTransformFeedback
      :: MonadIO m
      => GLenum -- ^ @primitiveMode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> m ()
    glBeginTransformFeedback :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBeginTransformFeedback GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn5 FunPtr (GLenum -> IO ())
    ptr_glBeginTransformFeedback GLenum
    v1

    {-# NOINLINE ptr_glBeginTransformFeedback #-}
    ptr_glBeginTransformFeedback :: FunPtr (GLenum -> IO ())
    ptr_glBeginTransformFeedback :: FunPtr (GLenum -> IO ())
    ptr_glBeginTransformFeedback = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginTransformFeedback"

    -- glBeginTransformFeedbackEXT -------------------------------------------------

    -- | This command is an alias for 'glBeginTransformFeedback'.
    glBeginTransformFeedbackEXT
      :: MonadIO m
      => GLenum -- ^ @primitiveMode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> m ()
    glBeginTransformFeedbackEXT :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBeginTransformFeedbackEXT GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn5 FunPtr (GLenum -> IO ())
    ptr_glBeginTransformFeedbackEXT GLenum
    v1

    {-# NOINLINE ptr_glBeginTransformFeedbackEXT #-}
    ptr_glBeginTransformFeedbackEXT :: FunPtr (GLenum -> IO ())
    ptr_glBeginTransformFeedbackEXT :: FunPtr (GLenum -> IO ())
    ptr_glBeginTransformFeedbackEXT = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginTransformFeedbackEXT"

    -- glBeginTransformFeedbackNV --------------------------------------------------

    -- | This command is an alias for 'glBeginTransformFeedback'.
    glBeginTransformFeedbackNV
      :: MonadIO m
      => GLenum -- ^ @primitiveMode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> m ()
    glBeginTransformFeedbackNV :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBeginTransformFeedbackNV GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn5 FunPtr (GLenum -> IO ())
    ptr_glBeginTransformFeedbackNV GLenum
    v1

    {-# NOINLINE ptr_glBeginTransformFeedbackNV #-}
    ptr_glBeginTransformFeedbackNV :: FunPtr (GLenum -> IO ())
    ptr_glBeginTransformFeedbackNV :: FunPtr (GLenum -> IO ())
    ptr_glBeginTransformFeedbackNV = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginTransformFeedbackNV"

    -- glBeginVertexShaderEXT ------------------------------------------------------

    glBeginVertexShaderEXT
      :: MonadIO m
      => m ()
    glBeginVertexShaderEXT :: forall (m :: * -> *). MonadIO m => m ()
    glBeginVertexShaderEXT = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (IO ()) -> IO ()
    dyn11 FunPtr (IO ())
    ptr_glBeginVertexShaderEXT

    {-# NOINLINE ptr_glBeginVertexShaderEXT #-}
    ptr_glBeginVertexShaderEXT :: FunPtr (IO ())
    ptr_glBeginVertexShaderEXT :: FunPtr (IO ())
    ptr_glBeginVertexShaderEXT = IO (FunPtr (IO ())) -> FunPtr (IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (IO ())) -> FunPtr (IO ()))
    -> IO (FunPtr (IO ())) -> FunPtr (IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginVertexShaderEXT"

    -- glBeginVideoCaptureNV -------------------------------------------------------

    glBeginVideoCaptureNV
      :: MonadIO m
      => GLuint -- ^ @video_capture_slot@.
      -> m ()
    glBeginVideoCaptureNV :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBeginVideoCaptureNV GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBeginVideoCaptureNV GLenum
    v1

    {-# NOINLINE ptr_glBeginVideoCaptureNV #-}
    ptr_glBeginVideoCaptureNV :: FunPtr (GLuint -> IO ())
    ptr_glBeginVideoCaptureNV :: FunPtr (GLenum -> IO ())
    ptr_glBeginVideoCaptureNV = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBeginVideoCaptureNV"

    -- glBindAttribLocation --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBindAttribLocation.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBindAttribLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindAttribLocation.xhtml OpenGL 4.x>.
    glBindAttribLocation
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @index@.
      -> Ptr GLchar -- ^ @name@.
      -> m ()
    glBindAttribLocation :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m ()
    glBindAttribLocation GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    -> GLenum -> GLenum -> Ptr GLchar -> IO ()
    dyn21 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindAttribLocation GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glBindAttribLocation #-}
    ptr_glBindAttribLocation :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
    ptr_glBindAttribLocation :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindAttribLocation = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindAttribLocation"

    -- glBindAttribLocationARB -----------------------------------------------------

    -- | This command is an alias for 'glBindAttribLocation'.
    glBindAttribLocationARB
      :: MonadIO m
      => GLhandleARB -- ^ @programObj@ of type @handleARB@.
      -> GLuint -- ^ @index@.
      -> Ptr GLcharARB -- ^ @name@.
      -> m ()
    glBindAttribLocationARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m ()
    glBindAttribLocationARB GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    -> GLenum -> GLenum -> Ptr GLchar -> IO ()
    dyn22 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindAttribLocationARB GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glBindAttribLocationARB #-}
    ptr_glBindAttribLocationARB :: FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ())
    ptr_glBindAttribLocationARB :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindAttribLocationARB = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindAttribLocationARB"

    -- glBindBuffer ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBindBuffer.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBindBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindBuffer.xhtml OpenGL 4.x>.
    glBindBuffer
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @buffer@.
      -> m ()
    glBindBuffer :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindBuffer GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindBuffer GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindBuffer #-}
    ptr_glBindBuffer :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindBuffer :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindBuffer = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBuffer"

    -- glBindBufferARB -------------------------------------------------------------

    -- | This command is an alias for 'glBindBuffer'.
    glBindBufferARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @buffer@.
      -> m ()
    glBindBufferARB :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindBufferARB GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindBufferARB GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindBufferARB #-}
    ptr_glBindBufferARB :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindBufferARB :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindBufferARB = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBufferARB"

    -- glBindBufferBase ------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindBufferBase.xhtml OpenGL 4.x>.
    glBindBufferBase
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @buffer@.
      -> m ()
    glBindBufferBase :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> m ()
    glBindBufferBase GLenum
    v1 GLenum
    v2 GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    -> GLenum -> GLenum -> GLenum -> IO ()
    dyn20 FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBindBufferBase GLenum
    v1 GLenum
    v2 GLenum
    v3

    {-# NOINLINE ptr_glBindBufferBase #-}
    ptr_glBindBufferBase :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
    ptr_glBindBufferBase :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBindBufferBase = IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBufferBase"

    -- glBindBufferBaseEXT ---------------------------------------------------------

    -- | This command is an alias for 'glBindBufferBase'.
    glBindBufferBaseEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @buffer@.
      -> m ()
    glBindBufferBaseEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> m ()
    glBindBufferBaseEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    -> GLenum -> GLenum -> GLenum -> IO ()
    dyn20 FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBindBufferBaseEXT GLenum
    v1 GLenum
    v2 GLenum
    v3

    {-# NOINLINE ptr_glBindBufferBaseEXT #-}
    ptr_glBindBufferBaseEXT :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
    ptr_glBindBufferBaseEXT :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBindBufferBaseEXT = IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBufferBaseEXT"

    -- glBindBufferBaseNV ----------------------------------------------------------

    -- | This command is an alias for 'glBindBufferBase'.
    glBindBufferBaseNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @buffer@.
      -> m ()
    glBindBufferBaseNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> m ()
    glBindBufferBaseNV GLenum
    v1 GLenum
    v2 GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    -> GLenum -> GLenum -> GLenum -> IO ()
    dyn20 FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBindBufferBaseNV GLenum
    v1 GLenum
    v2 GLenum
    v3

    {-# NOINLINE ptr_glBindBufferBaseNV #-}
    ptr_glBindBufferBaseNV :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
    ptr_glBindBufferBaseNV :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBindBufferBaseNV = IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBufferBaseNV"

    -- glBindBufferOffsetEXT -------------------------------------------------------

    glBindBufferOffsetEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @buffer@.
      -> GLintptr -- ^ @offset@ of type @BufferOffset@.
      -> m ()
    glBindBufferOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLintptr -> m ()
    glBindBufferOffsetEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    -> GLenum -> GLenum -> GLenum -> GLintptr -> IO ()
    dyn23 FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glBindBufferOffsetEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4

    {-# NOINLINE ptr_glBindBufferOffsetEXT #-}
    ptr_glBindBufferOffsetEXT :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
    ptr_glBindBufferOffsetEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glBindBufferOffsetEXT = IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBufferOffsetEXT"

    -- glBindBufferOffsetNV --------------------------------------------------------

    -- | This command is an alias for 'glBindBufferOffsetEXT'.
    glBindBufferOffsetNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @buffer@.
      -> GLintptr -- ^ @offset@ of type @BufferOffset@.
      -> m ()
    glBindBufferOffsetNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLintptr -> m ()
    glBindBufferOffsetNV GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    -> GLenum -> GLenum -> GLenum -> GLintptr -> IO ()
    dyn23 FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glBindBufferOffsetNV GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4

    {-# NOINLINE ptr_glBindBufferOffsetNV #-}
    ptr_glBindBufferOffsetNV :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
    ptr_glBindBufferOffsetNV :: FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glBindBufferOffsetNV = IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBufferOffsetNV"

    -- glBindBufferRange -----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindBufferRange.xhtml OpenGL 4.x>.
    glBindBufferRange
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @buffer@.
      -> GLintptr -- ^ @offset@ of type @BufferOffset@.
      -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
      -> m ()
    glBindBufferRange :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> m ()
    glBindBufferRange GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 GLintptr
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    -> GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()
    dyn24 FunPtr
      (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    ptr_glBindBufferRange GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 GLintptr
    v5

    {-# NOINLINE ptr_glBindBufferRange #-}
    ptr_glBindBufferRange :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
    ptr_glBindBufferRange :: FunPtr
      (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    ptr_glBindBufferRange = IO
      (FunPtr
         (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
     -> FunPtr
          (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBufferRange"

    -- glBindBufferRangeEXT --------------------------------------------------------

    -- | This command is an alias for 'glBindBufferRange'.
    glBindBufferRangeEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @buffer@.
      -> GLintptr -- ^ @offset@ of type @BufferOffset@.
      -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
      -> m ()
    glBindBufferRangeEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> m ()
    glBindBufferRangeEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 GLintptr
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    -> GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()
    dyn24 FunPtr
      (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    ptr_glBindBufferRangeEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 GLintptr
    v5

    {-# NOINLINE ptr_glBindBufferRangeEXT #-}
    ptr_glBindBufferRangeEXT :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
    ptr_glBindBufferRangeEXT :: FunPtr
      (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    ptr_glBindBufferRangeEXT = IO
      (FunPtr
         (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
     -> FunPtr
          (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBufferRangeEXT"

    -- glBindBufferRangeNV ---------------------------------------------------------

    -- | This command is an alias for 'glBindBufferRange'.
    glBindBufferRangeNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @buffer@.
      -> GLintptr -- ^ @offset@ of type @BufferOffset@.
      -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
      -> m ()
    glBindBufferRangeNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> m ()
    glBindBufferRangeNV GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 GLintptr
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    -> GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()
    dyn24 FunPtr
      (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    ptr_glBindBufferRangeNV GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 GLintptr
    v5

    {-# NOINLINE ptr_glBindBufferRangeNV #-}
    ptr_glBindBufferRangeNV :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
    ptr_glBindBufferRangeNV :: FunPtr
      (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    ptr_glBindBufferRangeNV = IO
      (FunPtr
         (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
     -> FunPtr
          (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> GLintptr -> GLintptr -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBufferRangeNV"

    -- glBindBuffersBase -----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindBuffersBase.xhtml OpenGL 4.x>.
    glBindBuffersBase
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @buffers@ pointing to @count@ elements of type @GLuint@.
      -> m ()
    glBindBuffersBase :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLsizei -> Ptr GLenum -> m ()
    glBindBuffersBase GLenum
    v1 GLenum
    v2 GLsizei
    v3 Ptr GLenum
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ()
    dyn25 FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ())
    ptr_glBindBuffersBase GLenum
    v1 GLenum
    v2 GLsizei
    v3 Ptr GLenum
    v4

    {-# NOINLINE ptr_glBindBuffersBase #-}
    ptr_glBindBuffersBase :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glBindBuffersBase :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ())
    ptr_glBindBuffersBase = IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBuffersBase"

    -- glBindBuffersRange ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindBuffersRange.xhtml OpenGL 4.x>.
    glBindBuffersRange
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @buffers@ pointing to @count@ elements of type @GLuint@.
      -> Ptr GLintptr -- ^ @offsets@ pointing to @count@ elements of type @GLintptr@.
      -> Ptr GLsizeiptr -- ^ @sizes@ pointing to @count@ elements of type @GLsizeiptr@.
      -> m ()
    glBindBuffersRange :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum
    -> GLsizei
    -> Ptr GLenum
    -> Ptr GLintptr
    -> Ptr GLintptr
    -> m ()
    glBindBuffersRange GLenum
    v1 GLenum
    v2 GLsizei
    v3 Ptr GLenum
    v4 Ptr GLintptr
    v5 Ptr GLintptr
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLenum
       -> GLsizei
       -> Ptr GLenum
       -> Ptr GLintptr
       -> Ptr GLintptr
       -> IO ())
    -> GLenum
    -> GLenum
    -> GLsizei
    -> Ptr GLenum
    -> Ptr GLintptr
    -> Ptr GLintptr
    -> IO ()
    dyn26 FunPtr
      (GLenum
       -> GLenum
       -> GLsizei
       -> Ptr GLenum
       -> Ptr GLintptr
       -> Ptr GLintptr
       -> IO ())
    ptr_glBindBuffersRange GLenum
    v1 GLenum
    v2 GLsizei
    v3 Ptr GLenum
    v4 Ptr GLintptr
    v5 Ptr GLintptr
    v6

    {-# NOINLINE ptr_glBindBuffersRange #-}
    ptr_glBindBuffersRange :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
    ptr_glBindBuffersRange :: FunPtr
      (GLenum
       -> GLenum
       -> GLsizei
       -> Ptr GLenum
       -> Ptr GLintptr
       -> Ptr GLintptr
       -> IO ())
    ptr_glBindBuffersRange = IO
      (FunPtr
         (GLenum
          -> GLenum
          -> GLsizei
          -> Ptr GLenum
          -> Ptr GLintptr
          -> Ptr GLintptr
          -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLsizei
          -> Ptr GLenum
          -> Ptr GLintptr
          -> Ptr GLintptr
          -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLenum
           -> GLsizei
           -> Ptr GLenum
           -> Ptr GLintptr
           -> Ptr GLintptr
           -> IO ()))
     -> FunPtr
          (GLenum
           -> GLenum
           -> GLsizei
           -> Ptr GLenum
           -> Ptr GLintptr
           -> Ptr GLintptr
           -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLsizei
             -> Ptr GLenum
             -> Ptr GLintptr
             -> Ptr GLintptr
             -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLsizei
          -> Ptr GLenum
          -> Ptr GLintptr
          -> Ptr GLintptr
          -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLsizei
             -> Ptr GLenum
             -> Ptr GLintptr
             -> Ptr GLintptr
             -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindBuffersRange"

    -- glBindFragDataLocation ------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindFragDataLocation.xhtml OpenGL 4.x>.
    glBindFragDataLocation
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @color@.
      -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
      -> m ()
    glBindFragDataLocation :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m ()
    glBindFragDataLocation GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    -> GLenum -> GLenum -> Ptr GLchar -> IO ()
    dyn21 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocation GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glBindFragDataLocation #-}
    ptr_glBindFragDataLocation :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocation :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocation = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindFragDataLocation"

    -- glBindFragDataLocationEXT ---------------------------------------------------

    -- | This command is an alias for 'glBindFragDataLocation'.
    glBindFragDataLocationEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @color@.
      -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
      -> m ()
    glBindFragDataLocationEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m ()
    glBindFragDataLocationEXT GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    -> GLenum -> GLenum -> Ptr GLchar -> IO ()
    dyn21 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocationEXT GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glBindFragDataLocationEXT #-}
    ptr_glBindFragDataLocationEXT :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocationEXT :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocationEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindFragDataLocationEXT"

    -- glBindFragDataLocationIndexed -----------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocationIndexed.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindFragDataLocationIndexed.xhtml OpenGL 4.x>.
    glBindFragDataLocationIndexed
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @colorNumber@.
      -> GLuint -- ^ @index@.
      -> Ptr GLchar -- ^ @name@.
      -> m ()
    glBindFragDataLocationIndexed :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLchar -> m ()
    glBindFragDataLocationIndexed GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()
    dyn27 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocationIndexed GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLchar
    v4

    {-# NOINLINE ptr_glBindFragDataLocationIndexed #-}
    ptr_glBindFragDataLocationIndexed :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocationIndexed :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocationIndexed = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindFragDataLocationIndexed"

    -- glBindFragDataLocationIndexedEXT --------------------------------------------

    -- | This command is an alias for 'glBindFragDataLocationIndexed'.
    glBindFragDataLocationIndexedEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @colorNumber@.
      -> GLuint -- ^ @index@.
      -> Ptr GLchar -- ^ @name@.
      -> m ()
    glBindFragDataLocationIndexedEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLchar -> m ()
    glBindFragDataLocationIndexedEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()
    dyn27 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocationIndexedEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLchar
    v4

    {-# NOINLINE ptr_glBindFragDataLocationIndexedEXT #-}
    ptr_glBindFragDataLocationIndexedEXT :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocationIndexedEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    ptr_glBindFragDataLocationIndexedEXT = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindFragDataLocationIndexedEXT"

    -- glBindFragmentShaderATI -----------------------------------------------------

    glBindFragmentShaderATI
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> m ()
    glBindFragmentShaderATI :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBindFragmentShaderATI GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBindFragmentShaderATI GLenum
    v1

    {-# NOINLINE ptr_glBindFragmentShaderATI #-}
    ptr_glBindFragmentShaderATI :: FunPtr (GLuint -> IO ())
    ptr_glBindFragmentShaderATI :: FunPtr (GLenum -> IO ())
    ptr_glBindFragmentShaderATI = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindFragmentShaderATI"

    -- glBindFramebuffer -----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindFramebuffer.xhtml OpenGL 4.x>.
    glBindFramebuffer
      :: MonadIO m
      => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
      -> GLuint -- ^ @framebuffer@.
      -> m ()
    glBindFramebuffer :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindFramebuffer GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindFramebuffer GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindFramebuffer #-}
    ptr_glBindFramebuffer :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindFramebuffer :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindFramebuffer = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindFramebuffer"

    -- glBindFramebufferEXT --------------------------------------------------------

    glBindFramebufferEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
      -> GLuint -- ^ @framebuffer@.
      -> m ()
    glBindFramebufferEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindFramebufferEXT GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindFramebufferEXT GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindFramebufferEXT #-}
    ptr_glBindFramebufferEXT :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindFramebufferEXT :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindFramebufferEXT = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindFramebufferEXT"

    -- glBindFramebufferOES --------------------------------------------------------

    glBindFramebufferOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
      -> GLuint -- ^ @framebuffer@.
      -> m ()
    glBindFramebufferOES :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindFramebufferOES GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindFramebufferOES GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindFramebufferOES #-}
    ptr_glBindFramebufferOES :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindFramebufferOES :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindFramebufferOES = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindFramebufferOES"

    -- glBindImageTexture ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindImageTexture.xhtml OpenGL 4.x>.
    glBindImageTexture
      :: MonadIO m
      => GLuint -- ^ @unit@.
      -> GLuint -- ^ @texture@.
      -> GLint -- ^ @level@.
      -> GLboolean -- ^ @layered@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> GLint -- ^ @layer@.
      -> GLenum -- ^ @access@ of type [BufferAccessARB](Graphics-GL-Groups.html#BufferAccessARB).
      -> GLenum -- ^ @format@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
      -> m ()
    glBindImageTexture :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum
    -> GLsizei
    -> GLboolean
    -> GLsizei
    -> GLenum
    -> GLenum
    -> m ()
    glBindImageTexture GLenum
    v1 GLenum
    v2 GLsizei
    v3 GLboolean
    v4 GLsizei
    v5 GLenum
    v6 GLenum
    v7 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLenum
       -> GLsizei
       -> GLboolean
       -> GLsizei
       -> GLenum
       -> GLenum
       -> IO ())
    -> GLenum
    -> GLenum
    -> GLsizei
    -> GLboolean
    -> GLsizei
    -> GLenum
    -> GLenum
    -> IO ()
    dyn28 FunPtr
      (GLenum
       -> GLenum
       -> GLsizei
       -> GLboolean
       -> GLsizei
       -> GLenum
       -> GLenum
       -> IO ())
    ptr_glBindImageTexture GLenum
    v1 GLenum
    v2 GLsizei
    v3 GLboolean
    v4 GLsizei
    v5 GLenum
    v6 GLenum
    v7

    {-# NOINLINE ptr_glBindImageTexture #-}
    ptr_glBindImageTexture :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
    ptr_glBindImageTexture :: FunPtr
      (GLenum
       -> GLenum
       -> GLsizei
       -> GLboolean
       -> GLsizei
       -> GLenum
       -> GLenum
       -> IO ())
    ptr_glBindImageTexture = IO
      (FunPtr
         (GLenum
          -> GLenum
          -> GLsizei
          -> GLboolean
          -> GLsizei
          -> GLenum
          -> GLenum
          -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLsizei
          -> GLboolean
          -> GLsizei
          -> GLenum
          -> GLenum
          -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLenum
           -> GLsizei
           -> GLboolean
           -> GLsizei
           -> GLenum
           -> GLenum
           -> IO ()))
     -> FunPtr
          (GLenum
           -> GLenum
           -> GLsizei
           -> GLboolean
           -> GLsizei
           -> GLenum
           -> GLenum
           -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLsizei
             -> GLboolean
             -> GLsizei
             -> GLenum
             -> GLenum
             -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLsizei
          -> GLboolean
          -> GLsizei
          -> GLenum
          -> GLenum
          -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLsizei
             -> GLboolean
             -> GLsizei
             -> GLenum
             -> GLenum
             -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindImageTexture"

    -- glBindImageTextureEXT -------------------------------------------------------

    glBindImageTextureEXT
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLuint -- ^ @texture@.
      -> GLint -- ^ @level@.
      -> GLboolean -- ^ @layered@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> GLint -- ^ @layer@.
      -> GLenum -- ^ @access@ of type [BufferAccessARB](Graphics-GL-Groups.html#BufferAccessARB).
      -> GLint -- ^ @format@.
      -> m ()
    glBindImageTextureEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum
    -> GLsizei
    -> GLboolean
    -> GLsizei
    -> GLenum
    -> GLsizei
    -> m ()
    glBindImageTextureEXT GLenum
    v1 GLenum
    v2 GLsizei
    v3 GLboolean
    v4 GLsizei
    v5 GLenum
    v6 GLsizei
    v7 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLenum
       -> GLsizei
       -> GLboolean
       -> GLsizei
       -> GLenum
       -> GLsizei
       -> IO ())
    -> GLenum
    -> GLenum
    -> GLsizei
    -> GLboolean
    -> GLsizei
    -> GLenum
    -> GLsizei
    -> IO ()
    dyn29 FunPtr
      (GLenum
       -> GLenum
       -> GLsizei
       -> GLboolean
       -> GLsizei
       -> GLenum
       -> GLsizei
       -> IO ())
    ptr_glBindImageTextureEXT GLenum
    v1 GLenum
    v2 GLsizei
    v3 GLboolean
    v4 GLsizei
    v5 GLenum
    v6 GLsizei
    v7

    {-# NOINLINE ptr_glBindImageTextureEXT #-}
    ptr_glBindImageTextureEXT :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ())
    ptr_glBindImageTextureEXT :: FunPtr
      (GLenum
       -> GLenum
       -> GLsizei
       -> GLboolean
       -> GLsizei
       -> GLenum
       -> GLsizei
       -> IO ())
    ptr_glBindImageTextureEXT = IO
      (FunPtr
         (GLenum
          -> GLenum
          -> GLsizei
          -> GLboolean
          -> GLsizei
          -> GLenum
          -> GLsizei
          -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLsizei
          -> GLboolean
          -> GLsizei
          -> GLenum
          -> GLsizei
          -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLenum
           -> GLsizei
           -> GLboolean
           -> GLsizei
           -> GLenum
           -> GLsizei
           -> IO ()))
     -> FunPtr
          (GLenum
           -> GLenum
           -> GLsizei
           -> GLboolean
           -> GLsizei
           -> GLenum
           -> GLsizei
           -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLsizei
             -> GLboolean
             -> GLsizei
             -> GLenum
             -> GLsizei
             -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLsizei
          -> GLboolean
          -> GLsizei
          -> GLenum
          -> GLsizei
          -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLsizei
             -> GLboolean
             -> GLsizei
             -> GLenum
             -> GLsizei
             -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindImageTextureEXT"

    -- glBindImageTextures ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindImageTextures.xhtml OpenGL 4.x>.
    glBindImageTextures
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @textures@ pointing to @count@ elements of type @GLuint@.
      -> m ()
    glBindImageTextures :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLsizei -> Ptr GLenum -> m ()
    glBindImageTextures GLenum
    v1 GLsizei
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    -> GLenum -> GLsizei -> Ptr GLenum -> IO ()
    dyn30 FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    ptr_glBindImageTextures GLenum
    v1 GLsizei
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glBindImageTextures #-}
    ptr_glBindImageTextures :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glBindImageTextures :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    ptr_glBindImageTextures = IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindImageTextures"

    -- glBindLightParameterEXT -----------------------------------------------------

    glBindLightParameterEXT
      :: MonadIO m
      => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
      -> GLenum -- ^ @value@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
      -> m GLuint
    glBindLightParameterEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m GLenum
    glBindLightParameterEXT GLenum
    v1 GLenum
    v2 = IO GLenum -> m GLenum
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLenum -> m GLenum) -> IO GLenum -> m GLenum
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO GLenum)
    -> GLenum -> GLenum -> IO GLenum
    dyn31 FunPtr (GLenum -> GLenum -> IO GLenum)
    ptr_glBindLightParameterEXT GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindLightParameterEXT #-}
    ptr_glBindLightParameterEXT :: FunPtr (GLenum -> GLenum -> IO GLuint)
    ptr_glBindLightParameterEXT :: FunPtr (GLenum -> GLenum -> IO GLenum)
    ptr_glBindLightParameterEXT = IO (FunPtr (GLenum -> GLenum -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> IO GLenum)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO GLenum))
     -> FunPtr (GLenum -> GLenum -> IO GLenum))
    -> IO (FunPtr (GLenum -> GLenum -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> IO GLenum)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO GLenum))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindLightParameterEXT"

    -- glBindMaterialParameterEXT --------------------------------------------------

    glBindMaterialParameterEXT
      :: MonadIO m
      => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
      -> GLenum -- ^ @value@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
      -> m GLuint
    glBindMaterialParameterEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m GLenum
    glBindMaterialParameterEXT GLenum
    v1 GLenum
    v2 = IO GLenum -> m GLenum
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLenum -> m GLenum) -> IO GLenum -> m GLenum
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO GLenum)
    -> GLenum -> GLenum -> IO GLenum
    dyn31 FunPtr (GLenum -> GLenum -> IO GLenum)
    ptr_glBindMaterialParameterEXT GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindMaterialParameterEXT #-}
    ptr_glBindMaterialParameterEXT :: FunPtr (GLenum -> GLenum -> IO GLuint)
    ptr_glBindMaterialParameterEXT :: FunPtr (GLenum -> GLenum -> IO GLenum)
    ptr_glBindMaterialParameterEXT = IO (FunPtr (GLenum -> GLenum -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> IO GLenum)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO GLenum))
     -> FunPtr (GLenum -> GLenum -> IO GLenum))
    -> IO (FunPtr (GLenum -> GLenum -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> IO GLenum)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO GLenum))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindMaterialParameterEXT"

    -- glBindMultiTextureEXT -------------------------------------------------------

    glBindMultiTextureEXT
      :: MonadIO m
      => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
      -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLuint -- ^ @texture@ of type @Texture@.
      -> m ()
    glBindMultiTextureEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> m ()
    glBindMultiTextureEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    -> GLenum -> GLenum -> GLenum -> IO ()
    dyn32 FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBindMultiTextureEXT GLenum
    v1 GLenum
    v2 GLenum
    v3

    {-# NOINLINE ptr_glBindMultiTextureEXT #-}
    ptr_glBindMultiTextureEXT :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
    ptr_glBindMultiTextureEXT :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    ptr_glBindMultiTextureEXT = IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindMultiTextureEXT"

    -- glBindParameterEXT ----------------------------------------------------------

    glBindParameterEXT
      :: MonadIO m
      => GLenum -- ^ @value@ of type [VertexShaderParameterEXT](Graphics-GL-Groups.html#VertexShaderParameterEXT).
      -> m GLuint
    glBindParameterEXT :: forall (m :: * -> *). MonadIO m => GLenum -> m GLenum
    glBindParameterEXT GLenum
    v1 = IO GLenum -> m GLenum
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLenum -> m GLenum) -> IO GLenum -> m GLenum
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO GLenum) -> GLenum -> IO GLenum
    dyn33 FunPtr (GLenum -> IO GLenum)
    ptr_glBindParameterEXT GLenum
    v1

    {-# NOINLINE ptr_glBindParameterEXT #-}
    ptr_glBindParameterEXT :: FunPtr (GLenum -> IO GLuint)
    ptr_glBindParameterEXT :: FunPtr (GLenum -> IO GLenum)
    ptr_glBindParameterEXT = IO (FunPtr (GLenum -> IO GLenum)) -> FunPtr (GLenum -> IO GLenum)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO GLenum)) -> FunPtr (GLenum -> IO GLenum))
    -> IO (FunPtr (GLenum -> IO GLenum))
    -> FunPtr (GLenum -> IO GLenum)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO GLenum))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindParameterEXT"

    -- glBindProgramARB ------------------------------------------------------------

    glBindProgramARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLuint -- ^ @program@.
      -> m ()
    glBindProgramARB :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindProgramARB GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindProgramARB GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindProgramARB #-}
    ptr_glBindProgramARB :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindProgramARB :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindProgramARB = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindProgramARB"

    -- glBindProgramNV -------------------------------------------------------------

    -- | This command is an alias for 'glBindProgramARB'.
    glBindProgramNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @id@.
      -> m ()
    glBindProgramNV :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindProgramNV GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindProgramNV GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindProgramNV #-}
    ptr_glBindProgramNV :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindProgramNV :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindProgramNV = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindProgramNV"

    -- glBindProgramPipeline -------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindProgramPipeline.xhtml OpenGL 4.x>.
    glBindProgramPipeline
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> m ()
    glBindProgramPipeline :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBindProgramPipeline GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBindProgramPipeline GLenum
    v1

    {-# NOINLINE ptr_glBindProgramPipeline #-}
    ptr_glBindProgramPipeline :: FunPtr (GLuint -> IO ())
    ptr_glBindProgramPipeline :: FunPtr (GLenum -> IO ())
    ptr_glBindProgramPipeline = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindProgramPipeline"

    -- glBindProgramPipelineEXT ----------------------------------------------------

    glBindProgramPipelineEXT
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> m ()
    glBindProgramPipelineEXT :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBindProgramPipelineEXT GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBindProgramPipelineEXT GLenum
    v1

    {-# NOINLINE ptr_glBindProgramPipelineEXT #-}
    ptr_glBindProgramPipelineEXT :: FunPtr (GLuint -> IO ())
    ptr_glBindProgramPipelineEXT :: FunPtr (GLenum -> IO ())
    ptr_glBindProgramPipelineEXT = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindProgramPipelineEXT"

    -- glBindRenderbuffer ----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindRenderbuffer.xhtml OpenGL 4.x>.
    glBindRenderbuffer
      :: MonadIO m
      => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
      -> GLuint -- ^ @renderbuffer@.
      -> m ()
    glBindRenderbuffer :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindRenderbuffer GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindRenderbuffer GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindRenderbuffer #-}
    ptr_glBindRenderbuffer :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindRenderbuffer :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindRenderbuffer = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindRenderbuffer"

    -- glBindRenderbufferEXT -------------------------------------------------------

    glBindRenderbufferEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
      -> GLuint -- ^ @renderbuffer@.
      -> m ()
    glBindRenderbufferEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindRenderbufferEXT GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindRenderbufferEXT GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindRenderbufferEXT #-}
    ptr_glBindRenderbufferEXT :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindRenderbufferEXT :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindRenderbufferEXT = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindRenderbufferEXT"

    -- glBindRenderbufferOES -------------------------------------------------------

    glBindRenderbufferOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
      -> GLuint -- ^ @renderbuffer@.
      -> m ()
    glBindRenderbufferOES :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindRenderbufferOES GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindRenderbufferOES GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindRenderbufferOES #-}
    ptr_glBindRenderbufferOES :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindRenderbufferOES :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindRenderbufferOES = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindRenderbufferOES"

    -- glBindSampler ---------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindSampler.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindSampler.xhtml OpenGL 4.x>.
    glBindSampler
      :: MonadIO m
      => GLuint -- ^ @unit@.
      -> GLuint -- ^ @sampler@.
      -> m ()
    glBindSampler :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindSampler GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn4 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindSampler GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindSampler #-}
    ptr_glBindSampler :: FunPtr (GLuint -> GLuint -> IO ())
    ptr_glBindSampler :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindSampler = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindSampler"

    -- glBindSamplers --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindSamplers.xhtml OpenGL 4.x>.
    glBindSamplers
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @samplers@ pointing to @count@ elements of type @GLuint@.
      -> m ()
    glBindSamplers :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLsizei -> Ptr GLenum -> m ()
    glBindSamplers GLenum
    v1 GLsizei
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    -> GLenum -> GLsizei -> Ptr GLenum -> IO ()
    dyn30 FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    ptr_glBindSamplers GLenum
    v1 GLsizei
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glBindSamplers #-}
    ptr_glBindSamplers :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glBindSamplers :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    ptr_glBindSamplers = IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindSamplers"

    -- glBindShadingRateImageNV ----------------------------------------------------

    glBindShadingRateImageNV
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> m ()
    glBindShadingRateImageNV :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBindShadingRateImageNV GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBindShadingRateImageNV GLenum
    v1

    {-# NOINLINE ptr_glBindShadingRateImageNV #-}
    ptr_glBindShadingRateImageNV :: FunPtr (GLuint -> IO ())
    ptr_glBindShadingRateImageNV :: FunPtr (GLenum -> IO ())
    ptr_glBindShadingRateImageNV = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindShadingRateImageNV"

    -- glBindTexGenParameterEXT ----------------------------------------------------

    glBindTexGenParameterEXT
      :: MonadIO m
      => GLenum -- ^ @unit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
      -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
      -> GLenum -- ^ @value@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
      -> m GLuint
    glBindTexGenParameterEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> m GLenum
    glBindTexGenParameterEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 = IO GLenum -> m GLenum
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLenum -> m GLenum) -> IO GLenum -> m GLenum
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum)
    -> GLenum -> GLenum -> GLenum -> IO GLenum
    dyn34 FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum)
    ptr_glBindTexGenParameterEXT GLenum
    v1 GLenum
    v2 GLenum
    v3

    {-# NOINLINE ptr_glBindTexGenParameterEXT #-}
    ptr_glBindTexGenParameterEXT :: FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint)
    ptr_glBindTexGenParameterEXT :: FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum)
    ptr_glBindTexGenParameterEXT = IO (FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum))
     -> FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO GLenum))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindTexGenParameterEXT"

    -- glBindTexture ---------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindTexture.xhtml OpenGL 4.x>.
    glBindTexture
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLuint -- ^ @texture@ of type @Texture@.
      -> m ()
    glBindTexture :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindTexture GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTexture GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindTexture #-}
    ptr_glBindTexture :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindTexture :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTexture = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindTexture"

    -- glBindTextureEXT ------------------------------------------------------------

    -- | This command is an alias for 'glBindTexture'.
    glBindTextureEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLuint -- ^ @texture@ of type @Texture@.
      -> m ()
    glBindTextureEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindTextureEXT GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTextureEXT GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindTextureEXT #-}
    ptr_glBindTextureEXT :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindTextureEXT :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTextureEXT = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindTextureEXT"

    -- glBindTextureUnit -----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindTextureUnit.xhtml OpenGL 4.x>.
    glBindTextureUnit
      :: MonadIO m
      => GLuint -- ^ @unit@.
      -> GLuint -- ^ @texture@.
      -> m ()
    glBindTextureUnit :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindTextureUnit GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn4 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTextureUnit GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindTextureUnit #-}
    ptr_glBindTextureUnit :: FunPtr (GLuint -> GLuint -> IO ())
    ptr_glBindTextureUnit :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTextureUnit = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindTextureUnit"

    -- glBindTextureUnitParameterEXT -----------------------------------------------

    glBindTextureUnitParameterEXT
      :: MonadIO m
      => GLenum -- ^ @unit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
      -> GLenum -- ^ @value@ of type [VertexShaderTextureUnitParameter](Graphics-GL-Groups.html#VertexShaderTextureUnitParameter).
      -> m GLuint
    glBindTextureUnitParameterEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m GLenum
    glBindTextureUnitParameterEXT GLenum
    v1 GLenum
    v2 = IO GLenum -> m GLenum
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLenum -> m GLenum) -> IO GLenum -> m GLenum
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO GLenum)
    -> GLenum -> GLenum -> IO GLenum
    dyn31 FunPtr (GLenum -> GLenum -> IO GLenum)
    ptr_glBindTextureUnitParameterEXT GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindTextureUnitParameterEXT #-}
    ptr_glBindTextureUnitParameterEXT :: FunPtr (GLenum -> GLenum -> IO GLuint)
    ptr_glBindTextureUnitParameterEXT :: FunPtr (GLenum -> GLenum -> IO GLenum)
    ptr_glBindTextureUnitParameterEXT = IO (FunPtr (GLenum -> GLenum -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> IO GLenum)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO GLenum))
     -> FunPtr (GLenum -> GLenum -> IO GLenum))
    -> IO (FunPtr (GLenum -> GLenum -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> IO GLenum)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO GLenum))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindTextureUnitParameterEXT"

    -- glBindTextures --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindTextures.xhtml OpenGL 4.x>.
    glBindTextures
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @textures@ pointing to @count@ elements of type @GLuint@.
      -> m ()
    glBindTextures :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLsizei -> Ptr GLenum -> m ()
    glBindTextures GLenum
    v1 GLsizei
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    -> GLenum -> GLsizei -> Ptr GLenum -> IO ()
    dyn30 FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    ptr_glBindTextures GLenum
    v1 GLsizei
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glBindTextures #-}
    ptr_glBindTextures :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glBindTextures :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    ptr_glBindTextures = IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindTextures"

    -- glBindTransformFeedback -----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindTransformFeedback.xhtml OpenGL 4.x>.
    glBindTransformFeedback
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BindTransformFeedbackTarget](Graphics-GL-Groups.html#BindTransformFeedbackTarget).
      -> GLuint -- ^ @id@.
      -> m ()
    glBindTransformFeedback :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindTransformFeedback GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTransformFeedback GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindTransformFeedback #-}
    ptr_glBindTransformFeedback :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindTransformFeedback :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTransformFeedback = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindTransformFeedback"

    -- glBindTransformFeedbackNV ---------------------------------------------------

    glBindTransformFeedbackNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @id@.
      -> m ()
    glBindTransformFeedbackNV :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m ()
    glBindTransformFeedbackNV GLenum
    v1 GLenum
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
    dyn19 FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTransformFeedbackNV GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glBindTransformFeedbackNV #-}
    ptr_glBindTransformFeedbackNV :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glBindTransformFeedbackNV :: FunPtr (GLenum -> GLenum -> IO ())
    ptr_glBindTransformFeedbackNV = IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindTransformFeedbackNV"

    -- glBindVertexArray -----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindVertexArray.xhtml OpenGL 4.x>.
    glBindVertexArray
      :: MonadIO m
      => GLuint -- ^ @array@.
      -> m ()
    glBindVertexArray :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBindVertexArray GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBindVertexArray GLenum
    v1

    {-# NOINLINE ptr_glBindVertexArray #-}
    ptr_glBindVertexArray :: FunPtr (GLuint -> IO ())
    ptr_glBindVertexArray :: FunPtr (GLenum -> IO ())
    ptr_glBindVertexArray = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindVertexArray"

    -- glBindVertexArrayAPPLE ------------------------------------------------------

    glBindVertexArrayAPPLE
      :: MonadIO m
      => GLuint -- ^ @array@.
      -> m ()
    glBindVertexArrayAPPLE :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBindVertexArrayAPPLE GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBindVertexArrayAPPLE GLenum
    v1

    {-# NOINLINE ptr_glBindVertexArrayAPPLE #-}
    ptr_glBindVertexArrayAPPLE :: FunPtr (GLuint -> IO ())
    ptr_glBindVertexArrayAPPLE :: FunPtr (GLenum -> IO ())
    ptr_glBindVertexArrayAPPLE = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindVertexArrayAPPLE"

    -- glBindVertexArrayOES --------------------------------------------------------

    -- | This command is an alias for 'glBindVertexArray'.
    glBindVertexArrayOES
      :: MonadIO m
      => GLuint -- ^ @array@.
      -> m ()
    glBindVertexArrayOES :: forall (m :: * -> *). MonadIO m => GLenum -> m ()
    glBindVertexArrayOES GLenum
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
    dyn3 FunPtr (GLenum -> IO ())
    ptr_glBindVertexArrayOES GLenum
    v1

    {-# NOINLINE ptr_glBindVertexArrayOES #-}
    ptr_glBindVertexArrayOES :: FunPtr (GLuint -> IO ())
    ptr_glBindVertexArrayOES :: FunPtr (GLenum -> IO ())
    ptr_glBindVertexArrayOES = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindVertexArrayOES"

    -- glBindVertexBuffer ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindVertexBuffer.xhtml OpenGL 4.x>.
    glBindVertexBuffer
      :: MonadIO m
      => GLuint -- ^ @bindingindex@.
      -> GLuint -- ^ @buffer@.
      -> GLintptr -- ^ @offset@ of type @BufferOffset@.
      -> GLsizei -- ^ @stride@.
      -> m ()
    glBindVertexBuffer :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLintptr -> GLsizei -> m ()
    glBindVertexBuffer GLenum
    v1 GLenum
    v2 GLintptr
    v3 GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ())
    -> GLenum -> GLenum -> GLintptr -> GLsizei -> IO ()
    dyn35 FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ())
    ptr_glBindVertexBuffer GLenum
    v1 GLenum
    v2 GLintptr
    v3 GLsizei
    v4

    {-# NOINLINE ptr_glBindVertexBuffer #-}
    ptr_glBindVertexBuffer :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
    ptr_glBindVertexBuffer :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ())
    ptr_glBindVertexBuffer = IO (FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLintptr -> GLsizei -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindVertexBuffer"

    -- glBindVertexBuffers ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindVertexBuffers.xhtml OpenGL 4.x>.
    glBindVertexBuffers
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @buffers@ pointing to @count@ elements of type @GLuint@.
      -> Ptr GLintptr -- ^ @offsets@ pointing to @count@ elements of type @GLintptr@.
      -> Ptr GLsizei -- ^ @strides@ pointing to @count@ elements of type @GLsizei@.
      -> m ()
    glBindVertexBuffers :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> m ()
    glBindVertexBuffers GLenum
    v1 GLsizei
    v2 Ptr GLenum
    v3 Ptr GLintptr
    v4 Ptr GLsizei
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ())
    -> GLenum
    -> GLsizei
    -> Ptr GLenum
    -> Ptr GLintptr
    -> Ptr GLsizei
    -> IO ()
    dyn36 FunPtr
      (GLenum
       -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ())
    ptr_glBindVertexBuffers GLenum
    v1 GLsizei
    v2 Ptr GLenum
    v3 Ptr GLintptr
    v4 Ptr GLsizei
    v5

    {-# NOINLINE ptr_glBindVertexBuffers #-}
    ptr_glBindVertexBuffers :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
    ptr_glBindVertexBuffers :: FunPtr
      (GLenum
       -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ())
    ptr_glBindVertexBuffers = IO
      (FunPtr
         (GLenum
          -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ()))
    -> FunPtr
         (GLenum
          -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ()))
     -> FunPtr
          (GLenum
           -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ()))
    -> FunPtr
         (GLenum
          -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLsizei -> Ptr GLenum -> Ptr GLintptr -> Ptr GLsizei -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glBindVertexBuffers"