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

    module Graphics.GL.Functions.F09 (
      glGenFencesAPPLE,
      glGenFencesNV,
      glGenFragmentShadersATI,
      glGenFramebuffers,
      glGenFramebuffersEXT,
      glGenFramebuffersOES,
      glGenLists,
      glGenNamesAMD,
      glGenOcclusionQueriesNV,
      glGenPathsNV,
      glGenPerfMonitorsAMD,
      glGenProgramPipelines,
      glGenProgramPipelinesEXT,
      glGenProgramsARB,
      glGenProgramsNV,
      glGenQueries,
      glGenQueriesARB,
      glGenQueriesEXT,
      glGenQueryResourceTagNV,
      glGenRenderbuffers,
      glGenRenderbuffersEXT,
      glGenRenderbuffersOES,
      glGenSamplers,
      glGenSemaphoresEXT,
      glGenSymbolsEXT,
      glGenTextures,
      glGenTexturesEXT,
      glGenTransformFeedbacks,
      glGenTransformFeedbacksNV,
      glGenVertexArrays,
      glGenVertexArraysAPPLE,
      glGenVertexArraysOES,
      glGenVertexShadersEXT,
      glGenerateMipmap,
      glGenerateMipmapEXT,
      glGenerateMipmapOES,
      glGenerateMultiTexMipmapEXT,
      glGenerateTextureMipmap,
      glGenerateTextureMipmapEXT,
      glGetActiveAtomicCounterBufferiv,
      glGetActiveAttrib,
      glGetActiveAttribARB,
      glGetActiveSubroutineName,
      glGetActiveSubroutineUniformName,
      glGetActiveSubroutineUniformiv,
      glGetActiveUniform,
      glGetActiveUniformARB,
      glGetActiveUniformBlockName,
      glGetActiveUniformBlockiv,
      glGetActiveUniformName,
      glGetActiveUniformsiv,
      glGetActiveVaryingNV,
      glGetArrayObjectfvATI,
      glGetArrayObjectivATI,
      glGetAttachedObjectsARB,
      glGetAttachedShaders,
      glGetAttribLocation,
      glGetAttribLocationARB,
      glGetBooleanIndexedvEXT,
      glGetBooleani_v,
      glGetBooleanv,
      glGetBufferParameteri64v,
      glGetBufferParameteriv,
      glGetBufferParameterivARB,
      glGetBufferParameterui64vNV,
      glGetBufferPointerv,
      glGetBufferPointervARB,
      glGetBufferPointervOES,
      glGetBufferSubData,
      glGetBufferSubDataARB,
      glGetClipPlane,
      glGetClipPlanef,
      glGetClipPlanefOES,
      glGetClipPlanex,
      glGetClipPlanexOES,
      glGetColorTable,
      glGetColorTableEXT,
      glGetColorTableParameterfv,
      glGetColorTableParameterfvEXT,
      glGetColorTableParameterfvSGI,
      glGetColorTableParameteriv,
      glGetColorTableParameterivEXT,
      glGetColorTableParameterivSGI,
      glGetColorTableSGI,
      glGetCombinerInputParameterfvNV,
      glGetCombinerInputParameterivNV,
      glGetCombinerOutputParameterfvNV,
      glGetCombinerOutputParameterivNV,
      glGetCombinerStageParameterfvNV,
      glGetCommandHeaderNV,
      glGetCompressedMultiTexImageEXT,
      glGetCompressedTexImage,
      glGetCompressedTexImageARB,
      glGetCompressedTextureImage,
      glGetCompressedTextureImageEXT,
      glGetCompressedTextureSubImage,
      glGetConvolutionFilter,
      glGetConvolutionFilterEXT,
      glGetConvolutionParameterfv,
      glGetConvolutionParameterfvEXT
    ) where

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

    -- glGenFencesAPPLE ------------------------------------------------------------

    glGenFencesAPPLE
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @fences@ pointing to @n@ elements of type @FenceNV@.
      -> m ()
    glGenFencesAPPLE :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenFencesAPPLE GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenFencesAPPLE GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenFencesNV ---------------------------------------------------------------

    glGenFencesNV
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @fences@ pointing to @n@ elements of type @FenceNV@.
      -> m ()
    glGenFencesNV :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenFencesNV GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenFencesNV GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenFragmentShadersATI -----------------------------------------------------

    glGenFragmentShadersATI
      :: MonadIO m
      => GLuint -- ^ @range@.
      -> m GLuint
    glGenFragmentShadersATI :: forall (m :: * -> *). MonadIO m => GLuint -> m GLuint
    glGenFragmentShadersATI GLuint
    v1 = IO GLuint -> m GLuint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint -> m GLuint) -> IO GLuint -> m GLuint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO GLuint) -> GLuint -> IO GLuint
    dyn312 FunPtr (GLuint -> IO GLuint)
    ptr_glGenFragmentShadersATI GLuint
    v1

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

    -- glGenFramebuffers -----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenFramebuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenFramebuffers.xhtml OpenGL 4.x>.
    glGenFramebuffers
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenFramebuffers :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenFramebuffers GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenFramebuffers GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenFramebuffersEXT --------------------------------------------------------

    -- | This command is an alias for 'glGenFramebuffers'.
    glGenFramebuffersEXT
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenFramebuffersEXT :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenFramebuffersEXT GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenFramebuffersEXT GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenFramebuffersOES --------------------------------------------------------

    glGenFramebuffersOES
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenFramebuffersOES :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenFramebuffersOES GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenFramebuffersOES GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenLists ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml OpenGL 2.x>.
    glGenLists
      :: MonadIO m
      => GLsizei -- ^ @range@.
      -> m GLuint -- ^ of type @List@.
    glGenLists :: forall (m :: * -> *). MonadIO m => GLsizei -> m GLuint
    glGenLists GLsizei
    v1 = IO GLuint -> m GLuint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint -> m GLuint) -> IO GLuint -> m GLuint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> IO GLuint) -> GLsizei -> IO GLuint
    dyn311 FunPtr (GLsizei -> IO GLuint)
    ptr_glGenLists GLsizei
    v1

    {-# NOINLINE ptr_glGenLists #-}
    ptr_glGenLists :: FunPtr (GLsizei -> IO GLuint)
    ptr_glGenLists :: FunPtr (GLsizei -> IO GLuint)
    ptr_glGenLists = IO (FunPtr (GLsizei -> IO GLuint)) -> FunPtr (GLsizei -> IO GLuint)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLsizei -> IO GLuint))
     -> FunPtr (GLsizei -> IO GLuint))
    -> IO (FunPtr (GLsizei -> IO GLuint))
    -> FunPtr (GLsizei -> IO GLuint)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLsizei -> IO GLuint))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGenLists"

    -- glGenNamesAMD ---------------------------------------------------------------

    glGenNamesAMD
      :: MonadIO m
      => GLenum -- ^ @identifier@.
      -> GLuint -- ^ @num@.
      -> Ptr GLuint -- ^ @names@ pointing to @num@ elements of type @GLuint@.
      -> m ()
    glGenNamesAMD :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLuint -> m ()
    glGenNamesAMD GLuint
    v1 GLuint
    v2 Ptr GLuint
    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 (GLuint -> GLuint -> Ptr GLuint -> IO ())
    -> GLuint -> GLuint -> Ptr GLuint -> IO ()
    dyn221 FunPtr (GLuint -> GLuint -> Ptr GLuint -> IO ())
    ptr_glGenNamesAMD GLuint
    v1 GLuint
    v2 Ptr GLuint
    v3

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

    -- glGenOcclusionQueriesNV -----------------------------------------------------

    glGenOcclusionQueriesNV
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenOcclusionQueriesNV :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenOcclusionQueriesNV GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenOcclusionQueriesNV GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenPathsNV ----------------------------------------------------------------

    glGenPathsNV
      :: MonadIO m
      => GLsizei -- ^ @range@.
      -> m GLuint -- ^ of type @Path@.
    glGenPathsNV :: forall (m :: * -> *). MonadIO m => GLsizei -> m GLuint
    glGenPathsNV GLsizei
    v1 = IO GLuint -> m GLuint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint -> m GLuint) -> IO GLuint -> m GLuint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> IO GLuint) -> GLsizei -> IO GLuint
    dyn311 FunPtr (GLsizei -> IO GLuint)
    ptr_glGenPathsNV GLsizei
    v1

    {-# NOINLINE ptr_glGenPathsNV #-}
    ptr_glGenPathsNV :: FunPtr (GLsizei -> IO GLuint)
    ptr_glGenPathsNV :: FunPtr (GLsizei -> IO GLuint)
    ptr_glGenPathsNV = IO (FunPtr (GLsizei -> IO GLuint)) -> FunPtr (GLsizei -> IO GLuint)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLsizei -> IO GLuint))
     -> FunPtr (GLsizei -> IO GLuint))
    -> IO (FunPtr (GLsizei -> IO GLuint))
    -> FunPtr (GLsizei -> IO GLuint)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLsizei -> IO GLuint))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGenPathsNV"

    -- glGenPerfMonitorsAMD --------------------------------------------------------

    glGenPerfMonitorsAMD
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @monitors@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenPerfMonitorsAMD :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenPerfMonitorsAMD GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenPerfMonitorsAMD GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenProgramPipelines -------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGenProgramPipelines.xhtml OpenGL 4.x>.
    glGenProgramPipelines
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @pipelines@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenProgramPipelines :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenProgramPipelines GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenProgramPipelines GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenProgramPipelinesEXT ----------------------------------------------------

    glGenProgramPipelinesEXT
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @pipelines@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenProgramPipelinesEXT :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenProgramPipelinesEXT GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenProgramPipelinesEXT GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenProgramsARB ------------------------------------------------------------

    glGenProgramsARB
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @programs@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenProgramsARB :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenProgramsARB GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenProgramsARB GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenProgramsNV -------------------------------------------------------------

    -- | This command is an alias for 'glGenProgramsARB'.
    glGenProgramsNV
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @programs@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenProgramsNV :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenProgramsNV GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenProgramsNV GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenQueries ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGenQueries.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenQueries.xhtml OpenGL 4.x>.
    glGenQueries
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenQueries :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenQueries GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenQueries GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenQueriesARB -------------------------------------------------------------

    -- | This command is an alias for 'glGenQueries'.
    glGenQueriesARB
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenQueriesARB :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenQueriesARB GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenQueriesARB GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenQueriesEXT -------------------------------------------------------------

    glGenQueriesEXT
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenQueriesEXT :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenQueriesEXT GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenQueriesEXT GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenQueryResourceTagNV -----------------------------------------------------

    glGenQueryResourceTagNV
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLint -- ^ @tagIds@ pointing to @n@ elements of type @GLint@.
      -> m ()
    glGenQueryResourceTagNV :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLsizei -> m ()
    glGenQueryResourceTagNV GLsizei
    v1 Ptr GLsizei
    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 (GLsizei -> Ptr GLsizei -> IO ())
    -> GLsizei -> Ptr GLsizei -> IO ()
    dyn222 FunPtr (GLsizei -> Ptr GLsizei -> IO ())
    ptr_glGenQueryResourceTagNV GLsizei
    v1 Ptr GLsizei
    v2

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

    -- glGenRenderbuffers ----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenRenderbuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenRenderbuffers.xhtml OpenGL 4.x>.
    glGenRenderbuffers
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenRenderbuffers :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenRenderbuffers GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenRenderbuffers GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenRenderbuffersEXT -------------------------------------------------------

    -- | This command is an alias for 'glGenRenderbuffers'.
    glGenRenderbuffersEXT
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenRenderbuffersEXT :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenRenderbuffersEXT GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenRenderbuffersEXT GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenRenderbuffersOES -------------------------------------------------------

    glGenRenderbuffersOES
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenRenderbuffersOES :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenRenderbuffersOES GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenRenderbuffersOES GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenSamplers ---------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenSamplers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenSamplers.xhtml OpenGL 4.x>.
    glGenSamplers
      :: MonadIO m
      => GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @samplers@ pointing to @count@ elements of type @GLuint@.
      -> m ()
    glGenSamplers :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenSamplers GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenSamplers GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenSemaphoresEXT ----------------------------------------------------------

    glGenSemaphoresEXT
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @semaphores@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenSemaphoresEXT :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenSemaphoresEXT GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenSemaphoresEXT GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenSymbolsEXT -------------------------------------------------------------

    glGenSymbolsEXT
      :: MonadIO m
      => GLenum -- ^ @datatype@ of type [DataTypeEXT](Graphics-GL-Groups.html#DataTypeEXT).
      -> GLenum -- ^ @storagetype@ of type [VertexShaderStorageTypeEXT](Graphics-GL-Groups.html#VertexShaderStorageTypeEXT).
      -> GLenum -- ^ @range@ of type [ParameterRangeEXT](Graphics-GL-Groups.html#ParameterRangeEXT).
      -> GLuint -- ^ @components@.
      -> m GLuint
    glGenSymbolsEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> m GLuint
    glGenSymbolsEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 = IO GLuint -> m GLuint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint -> m GLuint) -> IO GLuint -> m GLuint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO GLuint)
    -> GLuint -> GLuint -> GLuint -> GLuint -> IO GLuint
    dyn313 FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO GLuint)
    ptr_glGenSymbolsEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4

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

    -- glGenTextures ---------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGenTextures.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGenTextures.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenTextures.xhtml OpenGL 4.x>.
    glGenTextures
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
      -> m ()
    glGenTextures :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenTextures GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenTextures GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenTexturesEXT ------------------------------------------------------------

    glGenTexturesEXT
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
      -> m ()
    glGenTexturesEXT :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenTexturesEXT GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenTexturesEXT GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenTransformFeedbacks -----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGenTransformFeedbacks.xhtml OpenGL 4.x>.
    glGenTransformFeedbacks
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenTransformFeedbacks :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenTransformFeedbacks GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenTransformFeedbacks GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenTransformFeedbacksNV ---------------------------------------------------

    -- | This command is an alias for 'glGenTransformFeedbacks'.
    glGenTransformFeedbacksNV
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenTransformFeedbacksNV :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenTransformFeedbacksNV GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenTransformFeedbacksNV GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenVertexArrays -----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenVertexArrays.xhtml OpenGL 4.x>.
    glGenVertexArrays
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenVertexArrays :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenVertexArrays GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenVertexArrays GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenVertexArraysAPPLE ------------------------------------------------------

    -- | This command is an alias for 'glGenVertexArrays'.
    glGenVertexArraysAPPLE
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenVertexArraysAPPLE :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenVertexArraysAPPLE GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenVertexArraysAPPLE GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenVertexArraysOES --------------------------------------------------------

    -- | This command is an alias for 'glGenVertexArrays'.
    glGenVertexArraysOES
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glGenVertexArraysOES :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glGenVertexArraysOES GLsizei
    v1 Ptr GLuint
    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 (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glGenVertexArraysOES GLsizei
    v1 Ptr GLuint
    v2

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

    -- glGenVertexShadersEXT -------------------------------------------------------

    glGenVertexShadersEXT
      :: MonadIO m
      => GLuint -- ^ @range@.
      -> m GLuint
    glGenVertexShadersEXT :: forall (m :: * -> *). MonadIO m => GLuint -> m GLuint
    glGenVertexShadersEXT GLuint
    v1 = IO GLuint -> m GLuint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint -> m GLuint) -> IO GLuint -> m GLuint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO GLuint) -> GLuint -> IO GLuint
    dyn312 FunPtr (GLuint -> IO GLuint)
    ptr_glGenVertexShadersEXT GLuint
    v1

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

    -- glGenerateMipmap ------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenerateMipmap.xhtml OpenGL 4.x>.
    glGenerateMipmap
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> m ()
    glGenerateMipmap :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glGenerateMipmap GLuint
    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 (GLuint -> IO ()) -> GLuint -> IO ()
    dyn5 FunPtr (GLuint -> IO ())
    ptr_glGenerateMipmap GLuint
    v1

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

    -- glGenerateMipmapEXT ---------------------------------------------------------

    -- | This command is an alias for 'glGenerateMipmap'.
    glGenerateMipmapEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> m ()
    glGenerateMipmapEXT :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glGenerateMipmapEXT GLuint
    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 (GLuint -> IO ()) -> GLuint -> IO ()
    dyn5 FunPtr (GLuint -> IO ())
    ptr_glGenerateMipmapEXT GLuint
    v1

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

    -- glGenerateMipmapOES ---------------------------------------------------------

    glGenerateMipmapOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> m ()
    glGenerateMipmapOES :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glGenerateMipmapOES GLuint
    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 (GLuint -> IO ()) -> GLuint -> IO ()
    dyn5 FunPtr (GLuint -> IO ())
    ptr_glGenerateMipmapOES GLuint
    v1

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

    -- glGenerateMultiTexMipmapEXT -------------------------------------------------

    glGenerateMultiTexMipmapEXT
      :: MonadIO m
      => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
      -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> m ()
    glGenerateMultiTexMipmapEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glGenerateMultiTexMipmapEXT GLuint
    v1 GLuint
    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 (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> IO ()
    dyn54 FunPtr (GLuint -> GLuint -> IO ())
    ptr_glGenerateMultiTexMipmapEXT GLuint
    v1 GLuint
    v2

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

    -- glGenerateTextureMipmap -----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGenerateMipmap.xhtml OpenGL 4.x>.
    glGenerateTextureMipmap
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> m ()
    glGenerateTextureMipmap :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glGenerateTextureMipmap GLuint
    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 (GLuint -> IO ()) -> GLuint -> IO ()
    dyn3 FunPtr (GLuint -> IO ())
    ptr_glGenerateTextureMipmap GLuint
    v1

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

    -- glGenerateTextureMipmapEXT --------------------------------------------------

    glGenerateTextureMipmapEXT
      :: MonadIO m
      => GLuint -- ^ @texture@ of type @Texture@.
      -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> m ()
    glGenerateTextureMipmapEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glGenerateTextureMipmapEXT GLuint
    v1 GLuint
    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 (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> IO ()
    dyn18 FunPtr (GLuint -> GLuint -> IO ())
    ptr_glGenerateTextureMipmapEXT GLuint
    v1 GLuint
    v2

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

    -- glGetActiveAtomicCounterBufferiv --------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetActiveAtomicCounterBufferiv.xhtml OpenGL 4.x>.
    glGetActiveAtomicCounterBufferiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @bufferIndex@.
      -> GLenum -- ^ @pname@ of type [AtomicCounterBufferPName](Graphics-GL-Groups.html#AtomicCounterBufferPName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetActiveAtomicCounterBufferiv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetActiveAtomicCounterBufferiv GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr 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 (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn314 FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetActiveAtomicCounterBufferiv GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr GLsizei
    v4

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

    -- glGetActiveAttrib -----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveAttrib.xhtml OpenGL 4.x>.
    glGetActiveAttrib
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
      -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [AttributeType](Graphics-GL-Groups.html#AttributeType).
      -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetActiveAttrib :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> m ()
    glGetActiveAttrib GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    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
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> IO ()
    dyn315 FunPtr
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    ptr_glGetActiveAttrib GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    v7

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

    -- glGetActiveAttribARB --------------------------------------------------------

    -- | This command is an alias for 'glGetActiveAttrib'.
    glGetActiveAttribARB
      :: MonadIO m
      => GLhandleARB -- ^ @programObj@ of type @handleARB@.
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @maxLength@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
      -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [AttributeType](Graphics-GL-Groups.html#AttributeType).
      -> Ptr GLcharARB -- ^ @name@ pointing to @maxLength@ elements of type @GLcharARB@.
      -> m ()
    glGetActiveAttribARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> m ()
    glGetActiveAttribARB GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    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
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> IO ()
    dyn316 FunPtr
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    ptr_glGetActiveAttribARB GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    v7

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

    -- glGetActiveSubroutineName ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetActiveSubroutineName.xhtml OpenGL 4.x>.
    glGetActiveSubroutineName
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetActiveSubroutineName :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
    glGetActiveSubroutineName GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLchar
    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
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLchar
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLchar
    -> IO ()
    dyn317 FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLchar
       -> IO ())
    ptr_glGetActiveSubroutineName GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLchar
    v6

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

    -- glGetActiveSubroutineUniformName --------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetActiveSubroutineUniformName.xhtml OpenGL 4.x>.
    glGetActiveSubroutineUniformName
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetActiveSubroutineUniformName :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
    glGetActiveSubroutineUniformName GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLchar
    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
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLchar
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLchar
    -> IO ()
    dyn317 FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLchar
       -> IO ())
    ptr_glGetActiveSubroutineUniformName GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLchar
    v6

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

    -- glGetActiveSubroutineUniformiv ----------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetActiveSubroutineUniform.xhtml OpenGL 4.x>.
    glGetActiveSubroutineUniformiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [SubroutineParameterName](Graphics-GL-Groups.html#SubroutineParameterName).
      -> Ptr GLint -- ^ @values@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetActiveSubroutineUniformiv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetActiveSubroutineUniformiv GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    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
      (GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn318 FunPtr
      (GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetActiveSubroutineUniformiv GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 Ptr GLsizei
    v5

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

    -- glGetActiveUniform ----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniform.xhtml OpenGL 4.x>.
    glGetActiveUniform
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
      -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [UniformType](Graphics-GL-Groups.html#UniformType).
      -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetActiveUniform :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> m ()
    glGetActiveUniform GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    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
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> IO ()
    dyn315 FunPtr
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    ptr_glGetActiveUniform GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    v7

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

    -- glGetActiveUniformARB -------------------------------------------------------

    -- | This command is an alias for 'glGetActiveUniform'.
    glGetActiveUniformARB
      :: MonadIO m
      => GLhandleARB -- ^ @programObj@ of type @handleARB@.
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @maxLength@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
      -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [UniformType](Graphics-GL-Groups.html#UniformType).
      -> Ptr GLcharARB -- ^ @name@ pointing to @maxLength@ elements of type @GLcharARB@.
      -> m ()
    glGetActiveUniformARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> m ()
    glGetActiveUniformARB GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    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
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> IO ()
    dyn316 FunPtr
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    ptr_glGetActiveUniformARB GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    v7

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

    -- glGetActiveUniformBlockName -------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockName.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformBlockName.xhtml OpenGL 4.x>.
    glGetActiveUniformBlockName
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @uniformBlockIndex@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @uniformBlockName@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetActiveUniformBlockName :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
    glGetActiveUniformBlockName GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLchar
    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
      (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLchar
    -> IO ()
    dyn319 FunPtr
      (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    ptr_glGetActiveUniformBlockName GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLchar
    v5

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

    -- glGetActiveUniformBlockiv ---------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlock.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformBlock.xhtml OpenGL 4.x>.
    glGetActiveUniformBlockiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @uniformBlockIndex@.
      -> GLenum -- ^ @pname@ of type [UniformBlockPName](Graphics-GL-Groups.html#UniformBlockPName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(program,uniformBlockIndex,pname)@ elements of type @GLint@.
      -> m ()
    glGetActiveUniformBlockiv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetActiveUniformBlockiv GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr 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 (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn314 FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetActiveUniformBlockiv GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr GLsizei
    v4

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

    -- glGetActiveUniformName ------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformName.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformName.xhtml OpenGL 4.x>.
    glGetActiveUniformName
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @uniformIndex@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @uniformName@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetActiveUniformName :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
    glGetActiveUniformName GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLchar
    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
      (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLchar
    -> IO ()
    dyn319 FunPtr
      (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    ptr_glGetActiveUniformName GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLchar
    v5

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

    -- glGetActiveUniformsiv -------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformsiv.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformsiv.xhtml OpenGL 4.x>.
    glGetActiveUniformsiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLsizei -- ^ @uniformCount@.
      -> Ptr GLuint -- ^ @uniformIndices@ pointing to @uniformCount@ elements of type @GLuint@.
      -> GLenum -- ^ @pname@ of type [UniformPName](Graphics-GL-Groups.html#UniformPName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(uniformCount,pname)@ elements of type @GLint@.
      -> m ()
    glGetActiveUniformsiv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetActiveUniformsiv GLuint
    v1 GLsizei
    v2 Ptr GLuint
    v3 GLuint
    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
      (GLuint -> GLsizei -> Ptr GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint
    -> GLsizei
    -> Ptr GLuint
    -> GLuint
    -> Ptr GLsizei
    -> IO ()
    dyn320 FunPtr
      (GLuint -> GLsizei -> Ptr GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetActiveUniformsiv GLuint
    v1 GLsizei
    v2 Ptr GLuint
    v3 GLuint
    v4 Ptr GLsizei
    v5

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

    -- glGetActiveVaryingNV --------------------------------------------------------

    glGetActiveVaryingNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLsizei -- ^ @size@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type @GLenum@.
      -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(program,index,bufSize)@ elements of type @GLchar@.
      -> m ()
    glGetActiveVaryingNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> m ()
    glGetActiveVaryingNV GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    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
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLchar
    -> IO ()
    dyn321 FunPtr
      (GLuint
       -> GLuint
       -> GLsizei
       -> Ptr GLsizei
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLchar
       -> IO ())
    ptr_glGetActiveVaryingNV GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5 Ptr GLuint
    v6 Ptr GLchar
    v7

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

    -- glGetArrayObjectfvATI -------------------------------------------------------

    glGetArrayObjectfvATI
      :: MonadIO m
      => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
      -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
      -> m ()
    glGetArrayObjectfvATI :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLfloat -> m ()
    glGetArrayObjectfvATI GLuint
    v1 GLuint
    v2 Ptr GLfloat
    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 (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetArrayObjectfvATI GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3

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

    -- glGetArrayObjectivATI -------------------------------------------------------

    glGetArrayObjectivATI
      :: MonadIO m
      => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
      -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetArrayObjectivATI :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetArrayObjectivATI GLuint
    v1 GLuint
    v2 Ptr GLsizei
    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 (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn140 FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetArrayObjectivATI GLuint
    v1 GLuint
    v2 Ptr GLsizei
    v3

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

    -- glGetAttachedObjectsARB -----------------------------------------------------

    glGetAttachedObjectsARB
      :: MonadIO m
      => GLhandleARB -- ^ @containerObj@ of type @handleARB@.
      -> GLsizei -- ^ @maxCount@.
      -> Ptr GLsizei -- ^ @count@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLhandleARB -- ^ @obj@ pointing to @maxCount@ elements of type @handleARB@.
      -> m ()
    glGetAttachedObjectsARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
    glGetAttachedObjectsARB GLuint
    v1 GLsizei
    v2 Ptr GLsizei
    v3 Ptr GLuint
    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 (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()
    dyn322 FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
    ptr_glGetAttachedObjectsARB GLuint
    v1 GLsizei
    v2 Ptr GLsizei
    v3 Ptr GLuint
    v4

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

    -- glGetAttachedShaders --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetAttachedShaders.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetAttachedShaders.xhtml OpenGL 4.x>.
    glGetAttachedShaders
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLsizei -- ^ @maxCount@.
      -> Ptr GLsizei -- ^ @count@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLuint -- ^ @shaders@ pointing to @maxCount@ elements of type @GLuint@.
      -> m ()
    glGetAttachedShaders :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
    glGetAttachedShaders GLuint
    v1 GLsizei
    v2 Ptr GLsizei
    v3 Ptr GLuint
    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 (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()
    dyn323 FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
    ptr_glGetAttachedShaders GLuint
    v1 GLsizei
    v2 Ptr GLsizei
    v3 Ptr GLuint
    v4

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

    -- glGetAttribLocation ---------------------------------------------------------

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

    {-# NOINLINE ptr_glGetAttribLocation #-}
    ptr_glGetAttribLocation :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
    ptr_glGetAttribLocation :: FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
    ptr_glGetAttribLocation = IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
    -> FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
     -> FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
    -> IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
    -> FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetAttribLocation"

    -- glGetAttribLocationARB ------------------------------------------------------

    -- | This command is an alias for 'glGetAttribLocation'.
    glGetAttribLocationARB
      :: MonadIO m
      => GLhandleARB -- ^ @programObj@ of type @handleARB@.
      -> Ptr GLcharARB -- ^ @name@.
      -> m GLint
    glGetAttribLocationARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> Ptr GLchar -> m GLsizei
    glGetAttribLocationARB GLuint
    v1 Ptr GLchar
    v2 = IO GLsizei -> m GLsizei
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLsizei -> m GLsizei) -> IO GLsizei -> m GLsizei
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
    -> GLuint -> Ptr GLchar -> IO GLsizei
    dyn325 FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
    ptr_glGetAttribLocationARB GLuint
    v1 Ptr GLchar
    v2

    {-# NOINLINE ptr_glGetAttribLocationARB #-}
    ptr_glGetAttribLocationARB :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
    ptr_glGetAttribLocationARB :: FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
    ptr_glGetAttribLocationARB = IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
    -> FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
     -> FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
    -> IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
    -> FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetAttribLocationARB"

    -- glGetBooleanIndexedvEXT -----------------------------------------------------

    -- | This command is an alias for 'glGetBooleani_v'.
    glGetBooleanIndexedvEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m ()
    glGetBooleanIndexedvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLboolean -> m ()
    glGetBooleanIndexedvEXT GLuint
    v1 GLuint
    v2 Ptr GLboolean
    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 (GLuint -> GLuint -> Ptr GLboolean -> IO ())
    -> GLuint -> GLuint -> Ptr GLboolean -> IO ()
    dyn326 FunPtr (GLuint -> GLuint -> Ptr GLboolean -> IO ())
    ptr_glGetBooleanIndexedvEXT GLuint
    v1 GLuint
    v2 Ptr GLboolean
    v3

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

    -- glGetBooleani_v -------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
    glGetBooleani_v
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLuint -- ^ @index@.
      -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m ()
    glGetBooleani_v :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLboolean -> m ()
    glGetBooleani_v GLuint
    v1 GLuint
    v2 Ptr GLboolean
    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 (GLuint -> GLuint -> Ptr GLboolean -> IO ())
    -> GLuint -> GLuint -> Ptr GLboolean -> IO ()
    dyn326 FunPtr (GLuint -> GLuint -> Ptr GLboolean -> IO ())
    ptr_glGetBooleani_v GLuint
    v1 GLuint
    v2 Ptr GLboolean
    v3

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

    -- glGetBooleanv ---------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGet.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
    glGetBooleanv
      :: MonadIO m
      => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
      -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m ()
    glGetBooleanv :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLboolean -> m ()
    glGetBooleanv GLuint
    v1 Ptr GLboolean
    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 (GLuint -> Ptr GLboolean -> IO ())
    -> GLuint -> Ptr GLboolean -> IO ()
    dyn327 FunPtr (GLuint -> Ptr GLboolean -> IO ())
    ptr_glGetBooleanv GLuint
    v1 Ptr GLboolean
    v2

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

    -- glGetBufferParameteri64v ----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetBufferParameter.xhtml OpenGL 4.x>.
    glGetBufferParameteri64v
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLenum -- ^ @pname@ of type [BufferPNameARB](Graphics-GL-Groups.html#BufferPNameARB).
      -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
      -> m ()
    glGetBufferParameteri64v :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLint64 -> m ()
    glGetBufferParameteri64v GLuint
    v1 GLuint
    v2 Ptr GLint64
    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 (GLuint -> GLuint -> Ptr GLint64 -> IO ())
    -> GLuint -> GLuint -> Ptr GLint64 -> IO ()
    dyn328 FunPtr (GLuint -> GLuint -> Ptr GLint64 -> IO ())
    ptr_glGetBufferParameteri64v GLuint
    v1 GLuint
    v2 Ptr GLint64
    v3

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

    -- glGetBufferParameteriv ------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferParameteriv.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetBufferParameter.xhtml OpenGL 4.x>.
    glGetBufferParameteriv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLenum -- ^ @pname@ of type [BufferPNameARB](Graphics-GL-Groups.html#BufferPNameARB).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetBufferParameteriv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetBufferParameteriv GLuint
    v1 GLuint
    v2 Ptr GLsizei
    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 (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn140 FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetBufferParameteriv GLuint
    v1 GLuint
    v2 Ptr GLsizei
    v3

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

    -- glGetBufferParameterivARB ---------------------------------------------------

    -- | This command is an alias for 'glGetBufferParameteriv'.
    glGetBufferParameterivARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLenum -- ^ @pname@ of type [BufferPNameARB](Graphics-GL-Groups.html#BufferPNameARB).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetBufferParameterivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetBufferParameterivARB GLuint
    v1 GLuint
    v2 Ptr GLsizei
    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 (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn140 FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetBufferParameterivARB GLuint
    v1 GLuint
    v2 Ptr GLsizei
    v3

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

    -- glGetBufferParameterui64vNV -------------------------------------------------

    glGetBufferParameterui64vNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLenum -- ^ @pname@.
      -> Ptr GLuint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64EXT@.
      -> m ()
    glGetBufferParameterui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLuint64EXT -> m ()
    glGetBufferParameterui64vNV GLuint
    v1 GLuint
    v2 Ptr GLuint64EXT
    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 (GLuint -> GLuint -> Ptr GLuint64EXT -> IO ())
    -> GLuint -> GLuint -> Ptr GLuint64EXT -> IO ()
    dyn329 FunPtr (GLuint -> GLuint -> Ptr GLuint64EXT -> IO ())
    ptr_glGetBufferParameterui64vNV GLuint
    v1 GLuint
    v2 Ptr GLuint64EXT
    v3

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

    -- glGetBufferPointerv ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferPointerv.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferPointerv.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetBufferPointerv.xhtml OpenGL 4.x>.
    glGetBufferPointerv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLenum -- ^ @pname@ of type [BufferPointerNameARB](Graphics-GL-Groups.html#BufferPointerNameARB).
      -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
      -> m ()
    glGetBufferPointerv :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> Ptr (Ptr a) -> m ()
    glGetBufferPointerv GLuint
    v1 GLuint
    v2 Ptr (Ptr a)
    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 (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    -> GLuint -> GLuint -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    -> GLuint -> GLuint -> Ptr (Ptr a) -> IO ()
    dyn330 FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    ptr_glGetBufferPointerv GLuint
    v1 GLuint
    v2 Ptr (Ptr a)
    v3

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

    -- glGetBufferPointervARB ------------------------------------------------------

    -- | This command is an alias for 'glGetBufferPointerv'.
    glGetBufferPointervARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLenum -- ^ @pname@ of type [BufferPointerNameARB](Graphics-GL-Groups.html#BufferPointerNameARB).
      -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
      -> m ()
    glGetBufferPointervARB :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> Ptr (Ptr a) -> m ()
    glGetBufferPointervARB GLuint
    v1 GLuint
    v2 Ptr (Ptr a)
    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 (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    -> GLuint -> GLuint -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    -> GLuint -> GLuint -> Ptr (Ptr a) -> IO ()
    dyn330 FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    ptr_glGetBufferPointervARB GLuint
    v1 GLuint
    v2 Ptr (Ptr a)
    v3

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

    -- glGetBufferPointervOES ------------------------------------------------------

    -- | This command is an alias for 'glGetBufferPointerv'.
    glGetBufferPointervOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLenum -- ^ @pname@ of type [BufferPointerNameARB](Graphics-GL-Groups.html#BufferPointerNameARB).
      -> Ptr (Ptr a) -- ^ @params@.
      -> m ()
    glGetBufferPointervOES :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> Ptr (Ptr a) -> m ()
    glGetBufferPointervOES GLuint
    v1 GLuint
    v2 Ptr (Ptr a)
    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 (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    -> GLuint -> GLuint -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    -> GLuint -> GLuint -> Ptr (Ptr a) -> IO ()
    dyn330 FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> IO ())
    ptr_glGetBufferPointervOES GLuint
    v1 GLuint
    v2 Ptr (Ptr a)
    v3

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

    -- glGetBufferSubData ----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferSubData.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetBufferSubData.xhtml OpenGL 4.x>.
    glGetBufferSubData
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLintptr -- ^ @offset@ of type @BufferOffset@.
      -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
      -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
      -> m ()
    glGetBufferSubData :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLintptr -> GLintptr -> Ptr a -> m ()
    glGetBufferSubData GLuint
    v1 GLintptr
    v2 GLintptr
    v3 Ptr a
    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 (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    -> GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    -> GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ()
    dyn70 FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    ptr_glGetBufferSubData GLuint
    v1 GLintptr
    v2 GLintptr
    v3 Ptr a
    v4

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

    -- glGetBufferSubDataARB -------------------------------------------------------

    -- | This command is an alias for 'glGetBufferSubData'.
    glGetBufferSubDataARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> GLintptrARB -- ^ @offset@ of type @BufferOffsetARB@.
      -> GLsizeiptrARB -- ^ @size@ of type @BufferSizeARB@.
      -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
      -> m ()
    glGetBufferSubDataARB :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLintptr -> GLintptr -> Ptr a -> m ()
    glGetBufferSubDataARB GLuint
    v1 GLintptr
    v2 GLintptr
    v3 Ptr a
    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 (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    -> GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    -> GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ()
    dyn71 FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    ptr_glGetBufferSubDataARB GLuint
    v1 GLintptr
    v2 GLintptr
    v3 Ptr a
    v4

    {-# NOINLINE ptr_glGetBufferSubDataARB #-}
    ptr_glGetBufferSubDataARB :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr a -> IO ())
    ptr_glGetBufferSubDataARB :: forall a. FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    ptr_glGetBufferSubDataARB = IO (FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ()))
    -> FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ()))
     -> FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ()))
    -> IO (FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ()))
    -> FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLuint -> GLintptr -> GLintptr -> Ptr a -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetBufferSubDataARB"

    -- glGetClipPlane --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml OpenGL 2.x>.
    glGetClipPlane
      :: MonadIO m
      => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
      -> Ptr GLdouble -- ^ @equation@ pointing to @4@ elements of type @GLdouble@.
      -> m ()
    glGetClipPlane :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
    glGetClipPlane GLuint
    v1 Ptr GLdouble
    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 (GLuint -> Ptr GLdouble -> IO ())
    -> GLuint -> Ptr GLdouble -> IO ()
    dyn100 FunPtr (GLuint -> Ptr GLdouble -> IO ())
    ptr_glGetClipPlane GLuint
    v1 Ptr GLdouble
    v2

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

    -- glGetClipPlanef -------------------------------------------------------------

    glGetClipPlanef
      :: MonadIO m
      => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
      -> Ptr GLfloat -- ^ @equation@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glGetClipPlanef :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfloat -> m ()
    glGetClipPlanef GLuint
    v1 Ptr 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 (GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> Ptr GLfloat -> IO ()
    dyn101 FunPtr (GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetClipPlanef GLuint
    v1 Ptr GLfloat
    v2

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

    -- glGetClipPlanefOES ----------------------------------------------------------

    glGetClipPlanefOES
      :: MonadIO m
      => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
      -> Ptr GLfloat -- ^ @equation@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glGetClipPlanefOES :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfloat -> m ()
    glGetClipPlanefOES GLuint
    v1 Ptr 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 (GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> Ptr GLfloat -> IO ()
    dyn101 FunPtr (GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetClipPlanefOES GLuint
    v1 Ptr GLfloat
    v2

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

    -- glGetClipPlanex -------------------------------------------------------------

    glGetClipPlanex
      :: MonadIO m
      => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
      -> Ptr GLfixed -- ^ @equation@ pointing to @4@ elements of type @GLfixed@.
      -> m ()
    glGetClipPlanex :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfixed -> m ()
    glGetClipPlanex GLuint
    v1 Ptr 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 (GLuint -> Ptr GLfixed -> IO ())
    -> GLuint -> Ptr GLfixed -> IO ()
    dyn102 FunPtr (GLuint -> Ptr GLfixed -> IO ())
    ptr_glGetClipPlanex GLuint
    v1 Ptr GLfixed
    v2

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

    -- glGetClipPlanexOES ----------------------------------------------------------

    glGetClipPlanexOES
      :: MonadIO m
      => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
      -> Ptr GLfixed -- ^ @equation@ pointing to @4@ elements of type @GLfixed@.
      -> m ()
    glGetClipPlanexOES :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfixed -> m ()
    glGetClipPlanexOES GLuint
    v1 Ptr 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 (GLuint -> Ptr GLfixed -> IO ())
    -> GLuint -> Ptr GLfixed -> IO ()
    dyn102 FunPtr (GLuint -> Ptr GLfixed -> IO ())
    ptr_glGetClipPlanexOES GLuint
    v1 Ptr GLfixed
    v2

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

    -- glGetColorTable -------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTable.xml OpenGL 2.x>.
    glGetColorTable
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> Ptr a -- ^ @table@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
      -> m ()
    glGetColorTable :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr a -> m ()
    glGetColorTable GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    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 (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    dyn331 FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    ptr_glGetColorTable GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    v4

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

    -- glGetColorTableEXT ----------------------------------------------------------

    -- | This command is an alias for 'glGetColorTable'.
    glGetColorTableEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> Ptr a -- ^ @data@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
      -> m ()
    glGetColorTableEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr a -> m ()
    glGetColorTableEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    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 (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    dyn331 FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    ptr_glGetColorTableEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    v4

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

    -- glGetColorTableParameterfv --------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameter.xml OpenGL 2.x>.
    glGetColorTableParameterfv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
      -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetColorTableParameterfv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLfloat -> m ()
    glGetColorTableParameterfv GLuint
    v1 GLuint
    v2 Ptr GLfloat
    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 (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetColorTableParameterfv GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3

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

    -- glGetColorTableParameterfvEXT -----------------------------------------------

    -- | This command is an alias for 'glGetColorTableParameterfv'.
    glGetColorTableParameterfvEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
      -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetColorTableParameterfvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLfloat -> m ()
    glGetColorTableParameterfvEXT GLuint
    v1 GLuint
    v2 Ptr GLfloat
    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 (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetColorTableParameterfvEXT GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3

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

    -- glGetColorTableParameterfvSGI -----------------------------------------------

    glGetColorTableParameterfvSGI
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
      -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetColorTableParameterfvSGI :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLfloat -> m ()
    glGetColorTableParameterfvSGI GLuint
    v1 GLuint
    v2 Ptr GLfloat
    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 (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetColorTableParameterfvSGI GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3

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

    -- glGetColorTableParameteriv --------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameter.xml OpenGL 2.x>.
    glGetColorTableParameteriv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
      -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetColorTableParameteriv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetColorTableParameteriv GLuint
    v1 GLuint
    v2 Ptr GLsizei
    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 (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn140 FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetColorTableParameteriv GLuint
    v1 GLuint
    v2 Ptr GLsizei
    v3

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

    -- glGetColorTableParameterivEXT -----------------------------------------------

    -- | This command is an alias for 'glGetColorTableParameteriv'.
    glGetColorTableParameterivEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
      -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetColorTableParameterivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetColorTableParameterivEXT GLuint
    v1 GLuint
    v2 Ptr GLsizei
    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 (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn140 FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetColorTableParameterivEXT GLuint
    v1 GLuint
    v2 Ptr GLsizei
    v3

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

    -- glGetColorTableParameterivSGI -----------------------------------------------

    glGetColorTableParameterivSGI
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
      -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetColorTableParameterivSGI :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetColorTableParameterivSGI GLuint
    v1 GLuint
    v2 Ptr GLsizei
    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 (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn140 FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetColorTableParameterivSGI GLuint
    v1 GLuint
    v2 Ptr GLsizei
    v3

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

    -- glGetColorTableSGI ----------------------------------------------------------

    glGetColorTableSGI
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> Ptr a -- ^ @table@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
      -> m ()
    glGetColorTableSGI :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr a -> m ()
    glGetColorTableSGI GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    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 (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    dyn331 FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    ptr_glGetColorTableSGI GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    v4

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

    -- glGetCombinerInputParameterfvNV ---------------------------------------------

    glGetCombinerInputParameterfvNV
      :: MonadIO m
      => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
      -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
      -> GLenum -- ^ @variable@ of type [CombinerVariableNV](Graphics-GL-Groups.html#CombinerVariableNV).
      -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetCombinerInputParameterfvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
    glGetCombinerInputParameterfvNV GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 Ptr GLfloat
    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
      (GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn332 FunPtr
      (GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetCombinerInputParameterfvNV GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 Ptr GLfloat
    v5

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

    -- glGetCombinerInputParameterivNV ---------------------------------------------

    glGetCombinerInputParameterivNV
      :: MonadIO m
      => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
      -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
      -> GLenum -- ^ @variable@ of type [CombinerVariableNV](Graphics-GL-Groups.html#CombinerVariableNV).
      -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetCombinerInputParameterivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetCombinerInputParameterivNV GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    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
      (GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn333 FunPtr
      (GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetCombinerInputParameterivNV GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 Ptr GLsizei
    v5

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

    -- glGetCombinerOutputParameterfvNV --------------------------------------------

    glGetCombinerOutputParameterfvNV
      :: MonadIO m
      => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
      -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
      -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetCombinerOutputParameterfvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
    glGetCombinerOutputParameterfvNV GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr GLfloat
    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 (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn334 FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetCombinerOutputParameterfvNV GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr GLfloat
    v4

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

    -- glGetCombinerOutputParameterivNV --------------------------------------------

    glGetCombinerOutputParameterivNV
      :: MonadIO m
      => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
      -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
      -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetCombinerOutputParameterivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr GLsizei -> m ()
    glGetCombinerOutputParameterivNV GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr 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 (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ()
    dyn335 FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
    ptr_glGetCombinerOutputParameterivNV GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr GLsizei
    v4

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

    -- glGetCombinerStageParameterfvNV ---------------------------------------------

    glGetCombinerStageParameterfvNV
      :: MonadIO m
      => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
      -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetCombinerStageParameterfvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLfloat -> m ()
    glGetCombinerStageParameterfvNV GLuint
    v1 GLuint
    v2 Ptr GLfloat
    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 (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetCombinerStageParameterfvNV GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3

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

    -- glGetCommandHeaderNV --------------------------------------------------------

    glGetCommandHeaderNV
      :: MonadIO m
      => GLenum -- ^ @tokenID@.
      -> GLuint -- ^ @size@.
      -> m GLuint
    glGetCommandHeaderNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m GLuint
    glGetCommandHeaderNV GLuint
    v1 GLuint
    v2 = IO GLuint -> m GLuint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint -> m GLuint) -> IO GLuint -> m GLuint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> IO GLuint)
    -> GLuint -> GLuint -> IO GLuint
    dyn336 FunPtr (GLuint -> GLuint -> IO GLuint)
    ptr_glGetCommandHeaderNV GLuint
    v1 GLuint
    v2

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

    -- glGetCompressedMultiTexImageEXT ---------------------------------------------

    glGetCompressedMultiTexImageEXT
      :: MonadIO m
      => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
      -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLint -- ^ @lod@ of type @CheckedInt32@.
      -> Ptr a -- ^ @img@ pointing to @COMPSIZE(target,lod)@ elements of type @a@.
      -> m ()
    glGetCompressedMultiTexImageEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> Ptr a -> m ()
    glGetCompressedMultiTexImageEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr a
    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 (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr a -> IO ()
    dyn337 FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    ptr_glGetCompressedMultiTexImageEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr a
    v4

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

    -- glGetCompressedTexImage -----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetCompressedTexImage.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetCompressedTexImage.xhtml OpenGL 4.x>.
    glGetCompressedTexImage
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLint -- ^ @level@ of type @CheckedInt32@.
      -> Ptr a -- ^ @img@ pointing to @COMPSIZE(target,level)@ elements of type @CompressedTextureARB@.
      -> m ()
    glGetCompressedTexImage :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> Ptr a -> m ()
    glGetCompressedTexImage GLuint
    v1 GLsizei
    v2 Ptr a
    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 (GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLsizei -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLsizei -> Ptr a -> IO ()
    dyn338 FunPtr (GLuint -> GLsizei -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLsizei -> Ptr a -> IO ())
    ptr_glGetCompressedTexImage GLuint
    v1 GLsizei
    v2 Ptr a
    v3

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

    -- glGetCompressedTexImageARB --------------------------------------------------

    -- | This command is an alias for 'glGetCompressedTexImage'.
    glGetCompressedTexImageARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLint -- ^ @level@ of type @CheckedInt32@.
      -> Ptr a -- ^ @img@ pointing to @COMPSIZE(target,level)@ elements of type @CompressedTextureARB@.
      -> m ()
    glGetCompressedTexImageARB :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> Ptr a -> m ()
    glGetCompressedTexImageARB GLuint
    v1 GLsizei
    v2 Ptr a
    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 (GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLsizei -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLsizei -> Ptr a -> IO ()
    dyn338 FunPtr (GLuint -> GLsizei -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLsizei -> Ptr a -> IO ())
    ptr_glGetCompressedTexImageARB GLuint
    v1 GLsizei
    v2 Ptr a
    v3

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

    -- glGetCompressedTextureImage -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetCompressedTexImage.xhtml OpenGL 4.x>.
    glGetCompressedTextureImage
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLint -- ^ @level@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr a -- ^ @pixels@.
      -> m ()
    glGetCompressedTextureImage :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr a -> m ()
    glGetCompressedTextureImage GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr a
    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 (GLuint -> GLsizei -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr a -> IO ()
    dyn339 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr a -> IO ())
    ptr_glGetCompressedTextureImage GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr a
    v4

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

    -- glGetCompressedTextureImageEXT ----------------------------------------------

    glGetCompressedTextureImageEXT
      :: MonadIO m
      => GLuint -- ^ @texture@ of type @Texture@.
      -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLint -- ^ @lod@ of type @CheckedInt32@.
      -> Ptr a -- ^ @img@ pointing to @COMPSIZE(target,lod)@ elements of type @a@.
      -> m ()
    glGetCompressedTextureImageEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> Ptr a -> m ()
    glGetCompressedTextureImageEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr a
    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 (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr a -> IO ()
    dyn340 FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    ptr_glGetCompressedTextureImageEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr a
    v4

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

    -- glGetCompressedTextureSubImage ----------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetCompressedTextureSubImage.xhtml OpenGL 4.x>.
    glGetCompressedTextureSubImage
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLint -- ^ @level@.
      -> GLint -- ^ @xoffset@.
      -> GLint -- ^ @yoffset@.
      -> GLint -- ^ @zoffset@.
      -> GLsizei -- ^ @width@.
      -> GLsizei -- ^ @height@.
      -> GLsizei -- ^ @depth@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr a -- ^ @pixels@.
      -> m ()
    glGetCompressedTextureSubImage :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> Ptr a
    -> m ()
    glGetCompressedTextureSubImage GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5 GLsizei
    v6 GLsizei
    v7 GLsizei
    v8 GLsizei
    v9 Ptr a
    v10 = 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
      (GLuint
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> Ptr a
       -> IO ())
    -> GLuint
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> Ptr a
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> Ptr a
       -> IO ())
    -> GLuint
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> Ptr a
    -> IO ()
    dyn341 FunPtr
      (GLuint
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> Ptr a
       -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> GLsizei
       -> Ptr a
       -> IO ())
    ptr_glGetCompressedTextureSubImage GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5 GLsizei
    v6 GLsizei
    v7 GLsizei
    v8 GLsizei
    v9 Ptr a
    v10

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

    -- glGetConvolutionFilter ------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionFilter.xml OpenGL 2.x>.
    glGetConvolutionFilter
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> Ptr a -- ^ @image@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
      -> m ()
    glGetConvolutionFilter :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr a -> m ()
    glGetConvolutionFilter GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    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 (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    dyn331 FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    ptr_glGetConvolutionFilter GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    v4

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

    -- glGetConvolutionFilterEXT ---------------------------------------------------

    glGetConvolutionFilterEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> Ptr a -- ^ @image@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
      -> m ()
    glGetConvolutionFilterEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr a -> m ()
    glGetConvolutionFilterEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    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 (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLuint -> Ptr a -> IO ()
    dyn331 FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    ptr_glGetConvolutionFilterEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    v4

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

    -- glGetConvolutionParameterfv -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameter.xml OpenGL 2.x>.
    glGetConvolutionParameterfv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
      -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetConvolutionParameterfv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLfloat -> m ()
    glGetConvolutionParameterfv GLuint
    v1 GLuint
    v2 Ptr GLfloat
    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 (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetConvolutionParameterfv GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3

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

    -- glGetConvolutionParameterfvEXT ----------------------------------------------

    glGetConvolutionParameterfvEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
      -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetConvolutionParameterfvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLfloat -> m ()
    glGetConvolutionParameterfvEXT GLuint
    v1 GLuint
    v2 Ptr GLfloat
    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 (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetConvolutionParameterfvEXT GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3

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