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

    module Graphics.GL.Functions.F29 (
      glUpdateObjectBufferATI,
      glUploadGpuMaskNVX,
      glUseProgram,
      glUseProgramObjectARB,
      glUseProgramStages,
      glUseProgramStagesEXT,
      glUseShaderProgramEXT,
      glVDPAUFiniNV,
      glVDPAUGetSurfaceivNV,
      glVDPAUInitNV,
      glVDPAUIsSurfaceNV,
      glVDPAUMapSurfacesNV,
      glVDPAURegisterOutputSurfaceNV,
      glVDPAURegisterVideoSurfaceNV,
      glVDPAURegisterVideoSurfaceWithPictureStructureNV,
      glVDPAUSurfaceAccessNV,
      glVDPAUUnmapSurfacesNV,
      glVDPAUUnregisterSurfaceNV,
      glValidateProgram,
      glValidateProgramARB,
      glValidateProgramPipeline,
      glValidateProgramPipelineEXT,
      glVariantArrayObjectATI,
      glVariantPointerEXT,
      glVariantbvEXT,
      glVariantdvEXT,
      glVariantfvEXT,
      glVariantivEXT,
      glVariantsvEXT,
      glVariantubvEXT,
      glVariantuivEXT,
      glVariantusvEXT,
      glVertex2bOES,
      glVertex2bvOES,
      glVertex2d,
      glVertex2dv,
      glVertex2f,
      glVertex2fv,
      glVertex2hNV,
      glVertex2hvNV,
      glVertex2i,
      glVertex2iv,
      glVertex2s,
      glVertex2sv,
      glVertex2xOES,
      glVertex2xvOES,
      glVertex3bOES,
      glVertex3bvOES,
      glVertex3d,
      glVertex3dv,
      glVertex3f,
      glVertex3fv,
      glVertex3hNV,
      glVertex3hvNV,
      glVertex3i,
      glVertex3iv,
      glVertex3s,
      glVertex3sv,
      glVertex3xOES,
      glVertex3xvOES,
      glVertex4bOES,
      glVertex4bvOES,
      glVertex4d,
      glVertex4dv,
      glVertex4f,
      glVertex4fv,
      glVertex4hNV,
      glVertex4hvNV,
      glVertex4i,
      glVertex4iv,
      glVertex4s,
      glVertex4sv,
      glVertex4xOES,
      glVertex4xvOES,
      glVertexArrayAttribBinding,
      glVertexArrayAttribFormat,
      glVertexArrayAttribIFormat,
      glVertexArrayAttribLFormat,
      glVertexArrayBindVertexBufferEXT,
      glVertexArrayBindingDivisor,
      glVertexArrayColorOffsetEXT,
      glVertexArrayEdgeFlagOffsetEXT,
      glVertexArrayElementBuffer,
      glVertexArrayFogCoordOffsetEXT,
      glVertexArrayIndexOffsetEXT,
      glVertexArrayMultiTexCoordOffsetEXT,
      glVertexArrayNormalOffsetEXT,
      glVertexArrayParameteriAPPLE,
      glVertexArrayRangeAPPLE,
      glVertexArrayRangeNV,
      glVertexArraySecondaryColorOffsetEXT,
      glVertexArrayTexCoordOffsetEXT,
      glVertexArrayVertexAttribBindingEXT,
      glVertexArrayVertexAttribDivisorEXT,
      glVertexArrayVertexAttribFormatEXT,
      glVertexArrayVertexAttribIFormatEXT,
      glVertexArrayVertexAttribIOffsetEXT,
      glVertexArrayVertexAttribLFormatEXT,
      glVertexArrayVertexAttribLOffsetEXT,
      glVertexArrayVertexAttribOffsetEXT
    ) where

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

    -- glUpdateObjectBufferATI -----------------------------------------------------

    glUpdateObjectBufferATI
      :: MonadIO m
      => GLuint -- ^ @buffer@.
      -> GLuint -- ^ @offset@.
      -> GLsizei -- ^ @size@.
      -> Ptr a -- ^ @pointer@ pointing to @size@ elements of type @a@.
      -> GLenum -- ^ @preserve@ of type [PreserveModeATI](Graphics-GL-Groups.html#PreserveModeATI).
      -> m ()
    glUpdateObjectBufferATI :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> Ptr a -> GLuint -> m ()
    glUpdateObjectBufferATI GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr a
    v4 GLuint
    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 a -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr a -> GLuint -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr a -> GLuint -> IO ()
    dyn869 FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> GLuint -> IO ())
    forall a.
    FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> GLuint -> IO ())
    ptr_glUpdateObjectBufferATI GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr a
    v4 GLuint
    v5

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

    -- glUploadGpuMaskNVX ----------------------------------------------------------

    glUploadGpuMaskNVX
      :: MonadIO m
      => GLbitfield -- ^ @mask@.
      -> m ()
    glUploadGpuMaskNVX :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glUploadGpuMaskNVX 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 ()
    dyn75 FunPtr (GLuint -> IO ())
    ptr_glUploadGpuMaskNVX GLuint
    v1

    {-# NOINLINE ptr_glUploadGpuMaskNVX #-}
    ptr_glUploadGpuMaskNVX :: FunPtr (GLbitfield -> IO ())
    ptr_glUploadGpuMaskNVX :: FunPtr (GLuint -> IO ())
    ptr_glUploadGpuMaskNVX = 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
    "glUploadGpuMaskNVX"

    -- glUseProgram ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUseProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUseProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUseProgram.xhtml OpenGL 4.x>.
    glUseProgram
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> m ()
    glUseProgram :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glUseProgram 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_glUseProgram GLuint
    v1

    {-# NOINLINE ptr_glUseProgram #-}
    ptr_glUseProgram :: FunPtr (GLuint -> IO ())
    ptr_glUseProgram :: FunPtr (GLuint -> IO ())
    ptr_glUseProgram = 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
    "glUseProgram"

    -- glUseProgramObjectARB -------------------------------------------------------

    -- | This command is an alias for 'glUseProgram'.
    glUseProgramObjectARB
      :: MonadIO m
      => GLhandleARB -- ^ @programObj@ of type @handleARB@.
      -> m ()
    glUseProgramObjectARB :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glUseProgramObjectARB 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 ()
    dyn144 FunPtr (GLuint -> IO ())
    ptr_glUseProgramObjectARB GLuint
    v1

    {-# NOINLINE ptr_glUseProgramObjectARB #-}
    ptr_glUseProgramObjectARB :: FunPtr (GLhandleARB -> IO ())
    ptr_glUseProgramObjectARB :: FunPtr (GLuint -> IO ())
    ptr_glUseProgramObjectARB = 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
    "glUseProgramObjectARB"

    -- glUseProgramStages ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glUseProgramStages.xhtml OpenGL 4.x>.
    glUseProgramStages
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> GLbitfield -- ^ @stages@ of type [UseProgramStageMask](Graphics-GL-Groups.html#UseProgramStageMask).
      -> GLuint -- ^ @program@.
      -> m ()
    glUseProgramStages :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glUseProgramStages GLuint
    v1 GLuint
    v2 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 -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> IO ()
    dyn870 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glUseProgramStages GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glUseProgramStagesEXT -------------------------------------------------------

    glUseProgramStagesEXT
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> GLbitfield -- ^ @stages@ of type [UseProgramStageMask](Graphics-GL-Groups.html#UseProgramStageMask).
      -> GLuint -- ^ @program@.
      -> m ()
    glUseProgramStagesEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glUseProgramStagesEXT GLuint
    v1 GLuint
    v2 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 -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> IO ()
    dyn870 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glUseProgramStagesEXT GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glUseShaderProgramEXT -------------------------------------------------------

    glUseShaderProgramEXT
      :: MonadIO m
      => GLenum -- ^ @type@.
      -> GLuint -- ^ @program@.
      -> m ()
    glUseShaderProgramEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glUseShaderProgramEXT 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 ()
    dyn19 FunPtr (GLuint -> GLuint -> IO ())
    ptr_glUseShaderProgramEXT GLuint
    v1 GLuint
    v2

    {-# NOINLINE ptr_glUseShaderProgramEXT #-}
    ptr_glUseShaderProgramEXT :: FunPtr (GLenum -> GLuint -> IO ())
    ptr_glUseShaderProgramEXT :: FunPtr (GLuint -> GLuint -> IO ())
    ptr_glUseShaderProgramEXT = 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
    "glUseShaderProgramEXT"

    -- glVDPAUFiniNV ---------------------------------------------------------------

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

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

    -- glVDPAUGetSurfaceivNV -------------------------------------------------------

    glVDPAUGetSurfaceivNV
      :: MonadIO m
      => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
      -> GLenum -- ^ @pname@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLsizei -- ^ @length@.
      -> Ptr GLint -- ^ @values@ pointing to @count@ elements of type @GLint@.
      -> m ()
    glVDPAUGetSurfaceivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLvdpauSurfaceNV
    -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> m ()
    glVDPAUGetSurfaceivNV GLvdpauSurfaceNV
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    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
      (GLvdpauSurfaceNV
       -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> IO ())
    -> GLvdpauSurfaceNV
    -> GLuint
    -> GLsizei
    -> Ptr GLsizei
    -> Ptr GLsizei
    -> IO ()
    dyn871 FunPtr
      (GLvdpauSurfaceNV
       -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> IO ())
    ptr_glVDPAUGetSurfaceivNV GLvdpauSurfaceNV
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLsizei
    v4 Ptr GLsizei
    v5

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

    -- glVDPAUInitNV ---------------------------------------------------------------

    glVDPAUInitNV
      :: MonadIO m
      => Ptr a -- ^ @vdpDevice@.
      -> Ptr b -- ^ @getProcAddress@.
      -> m ()
    glVDPAUInitNV :: forall (m :: * -> *) a b. MonadIO m => Ptr a -> Ptr b -> m ()
    glVDPAUInitNV Ptr a
    v1 Ptr b
    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 (Ptr a -> Ptr b -> IO ()) -> Ptr a -> Ptr b -> IO ()
    forall a b.
    FunPtr (Ptr a -> Ptr b -> IO ()) -> Ptr a -> Ptr b -> IO ()
    dyn872 FunPtr (Ptr a -> Ptr b -> IO ())
    forall a b. FunPtr (Ptr a -> Ptr b -> IO ())
    ptr_glVDPAUInitNV Ptr a
    v1 Ptr b
    v2

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

    -- glVDPAUIsSurfaceNV ----------------------------------------------------------

    glVDPAUIsSurfaceNV
      :: MonadIO m
      => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
      -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
    glVDPAUIsSurfaceNV :: forall (m :: * -> *). MonadIO m => GLvdpauSurfaceNV -> m GLboolean
    glVDPAUIsSurfaceNV GLvdpauSurfaceNV
    v1 = IO GLboolean -> m GLboolean
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLboolean -> m GLboolean) -> IO GLboolean -> m GLboolean
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
    -> GLvdpauSurfaceNV -> IO GLboolean
    dyn873 FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
    ptr_glVDPAUIsSurfaceNV GLvdpauSurfaceNV
    v1

    {-# NOINLINE ptr_glVDPAUIsSurfaceNV #-}
    ptr_glVDPAUIsSurfaceNV :: FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
    ptr_glVDPAUIsSurfaceNV :: FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
    ptr_glVDPAUIsSurfaceNV = IO (FunPtr (GLvdpauSurfaceNV -> IO GLboolean))
    -> FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLvdpauSurfaceNV -> IO GLboolean))
     -> FunPtr (GLvdpauSurfaceNV -> IO GLboolean))
    -> IO (FunPtr (GLvdpauSurfaceNV -> IO GLboolean))
    -> FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLvdpauSurfaceNV -> IO GLboolean))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVDPAUIsSurfaceNV"

    -- glVDPAUMapSurfacesNV --------------------------------------------------------

    glVDPAUMapSurfacesNV
      :: MonadIO m
      => GLsizei -- ^ @numSurfaces@.
      -> Ptr GLvdpauSurfaceNV -- ^ @surfaces@ pointing to @numSurfaces@ elements of type @vdpauSurfaceNV@.
      -> m ()
    glVDPAUMapSurfacesNV :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
    glVDPAUMapSurfacesNV GLsizei
    v1 Ptr GLvdpauSurfaceNV
    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 GLvdpauSurfaceNV -> IO ())
    -> GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()
    dyn874 FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    ptr_glVDPAUMapSurfacesNV GLsizei
    v1 Ptr GLvdpauSurfaceNV
    v2

    {-# NOINLINE ptr_glVDPAUMapSurfacesNV #-}
    ptr_glVDPAUMapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    ptr_glVDPAUMapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    ptr_glVDPAUMapSurfacesNV = IO (FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
    -> FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
     -> FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
    -> IO (FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
    -> FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVDPAUMapSurfacesNV"

    -- glVDPAURegisterOutputSurfaceNV ----------------------------------------------

    glVDPAURegisterOutputSurfaceNV
      :: MonadIO m
      => Ptr a -- ^ @vdpSurface@.
      -> GLenum -- ^ @target@.
      -> GLsizei -- ^ @numTextureNames@.
      -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
      -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
    glVDPAURegisterOutputSurfaceNV :: forall (m :: * -> *) a.
    MonadIO m =>
    Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
    glVDPAURegisterOutputSurfaceNV Ptr a
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLuint
    v4 = IO GLvdpauSurfaceNV -> m GLvdpauSurfaceNV
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLvdpauSurfaceNV -> m GLvdpauSurfaceNV)
    -> IO GLvdpauSurfaceNV -> m GLvdpauSurfaceNV
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
    -> Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV
    forall a.
    FunPtr
      (Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
    -> Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV
    dyn875 FunPtr
      (Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
    forall a.
    FunPtr
      (Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
    ptr_glVDPAURegisterOutputSurfaceNV Ptr a
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLuint
    v4

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

    -- glVDPAURegisterVideoSurfaceNV -----------------------------------------------

    glVDPAURegisterVideoSurfaceNV
      :: MonadIO m
      => Ptr a -- ^ @vdpSurface@.
      -> GLenum -- ^ @target@.
      -> GLsizei -- ^ @numTextureNames@.
      -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
      -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
    glVDPAURegisterVideoSurfaceNV :: forall (m :: * -> *) a.
    MonadIO m =>
    Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
    glVDPAURegisterVideoSurfaceNV Ptr a
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLuint
    v4 = IO GLvdpauSurfaceNV -> m GLvdpauSurfaceNV
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLvdpauSurfaceNV -> m GLvdpauSurfaceNV)
    -> IO GLvdpauSurfaceNV -> m GLvdpauSurfaceNV
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
    -> Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV
    forall a.
    FunPtr
      (Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
    -> Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV
    dyn875 FunPtr
      (Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
    forall a.
    FunPtr
      (Ptr a -> GLuint -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
    ptr_glVDPAURegisterVideoSurfaceNV Ptr a
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLuint
    v4

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

    -- glVDPAURegisterVideoSurfaceWithPictureStructureNV ---------------------------

    glVDPAURegisterVideoSurfaceWithPictureStructureNV
      :: MonadIO m
      => Ptr a -- ^ @vdpSurface@.
      -> GLenum -- ^ @target@.
      -> GLsizei -- ^ @numTextureNames@.
      -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
      -> GLboolean -- ^ @isFrameStructure@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
    glVDPAURegisterVideoSurfaceWithPictureStructureNV :: forall (m :: * -> *) a.
    MonadIO m =>
    Ptr a
    -> GLuint
    -> GLsizei
    -> Ptr GLuint
    -> GLboolean
    -> m GLvdpauSurfaceNV
    glVDPAURegisterVideoSurfaceWithPictureStructureNV Ptr a
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLuint
    v4 GLboolean
    v5 = IO GLvdpauSurfaceNV -> m GLvdpauSurfaceNV
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLvdpauSurfaceNV -> m GLvdpauSurfaceNV)
    -> IO GLvdpauSurfaceNV -> m GLvdpauSurfaceNV
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (Ptr a
       -> GLuint
       -> GLsizei
       -> Ptr GLuint
       -> GLboolean
       -> IO GLvdpauSurfaceNV)
    -> Ptr a
    -> GLuint
    -> GLsizei
    -> Ptr GLuint
    -> GLboolean
    -> IO GLvdpauSurfaceNV
    forall a.
    FunPtr
      (Ptr a
       -> GLuint
       -> GLsizei
       -> Ptr GLuint
       -> GLboolean
       -> IO GLvdpauSurfaceNV)
    -> Ptr a
    -> GLuint
    -> GLsizei
    -> Ptr GLuint
    -> GLboolean
    -> IO GLvdpauSurfaceNV
    dyn876 FunPtr
      (Ptr a
       -> GLuint
       -> GLsizei
       -> Ptr GLuint
       -> GLboolean
       -> IO GLvdpauSurfaceNV)
    forall a.
    FunPtr
      (Ptr a
       -> GLuint
       -> GLsizei
       -> Ptr GLuint
       -> GLboolean
       -> IO GLvdpauSurfaceNV)
    ptr_glVDPAURegisterVideoSurfaceWithPictureStructureNV Ptr a
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLuint
    v4 GLboolean
    v5

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

    -- glVDPAUSurfaceAccessNV ------------------------------------------------------

    glVDPAUSurfaceAccessNV
      :: MonadIO m
      => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
      -> GLenum -- ^ @access@.
      -> m ()
    glVDPAUSurfaceAccessNV :: forall (m :: * -> *).
    MonadIO m =>
    GLvdpauSurfaceNV -> GLuint -> m ()
    glVDPAUSurfaceAccessNV GLvdpauSurfaceNV
    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 (GLvdpauSurfaceNV -> GLuint -> IO ())
    -> GLvdpauSurfaceNV -> GLuint -> IO ()
    dyn877 FunPtr (GLvdpauSurfaceNV -> GLuint -> IO ())
    ptr_glVDPAUSurfaceAccessNV GLvdpauSurfaceNV
    v1 GLuint
    v2

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

    -- glVDPAUUnmapSurfacesNV ------------------------------------------------------

    glVDPAUUnmapSurfacesNV
      :: MonadIO m
      => GLsizei -- ^ @numSurface@.
      -> Ptr GLvdpauSurfaceNV -- ^ @surfaces@ pointing to @numSurface@ elements of type @vdpauSurfaceNV@.
      -> m ()
    glVDPAUUnmapSurfacesNV :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
    glVDPAUUnmapSurfacesNV GLsizei
    v1 Ptr GLvdpauSurfaceNV
    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 GLvdpauSurfaceNV -> IO ())
    -> GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()
    dyn874 FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    ptr_glVDPAUUnmapSurfacesNV GLsizei
    v1 Ptr GLvdpauSurfaceNV
    v2

    {-# NOINLINE ptr_glVDPAUUnmapSurfacesNV #-}
    ptr_glVDPAUUnmapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    ptr_glVDPAUUnmapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    ptr_glVDPAUUnmapSurfacesNV = IO (FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
    -> FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
     -> FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
    -> IO (FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
    -> FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVDPAUUnmapSurfacesNV"

    -- glVDPAUUnregisterSurfaceNV --------------------------------------------------

    glVDPAUUnregisterSurfaceNV
      :: MonadIO m
      => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
      -> m ()
    glVDPAUUnregisterSurfaceNV :: forall (m :: * -> *). MonadIO m => GLvdpauSurfaceNV -> m ()
    glVDPAUUnregisterSurfaceNV GLvdpauSurfaceNV
    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 (GLvdpauSurfaceNV -> IO ()) -> GLvdpauSurfaceNV -> IO ()
    dyn878 FunPtr (GLvdpauSurfaceNV -> IO ())
    ptr_glVDPAUUnregisterSurfaceNV GLvdpauSurfaceNV
    v1

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

    -- glValidateProgram -----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glValidateProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glValidateProgram.xhtml OpenGL 4.x>.
    glValidateProgram
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> m ()
    glValidateProgram :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glValidateProgram 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_glValidateProgram GLuint
    v1

    {-# NOINLINE ptr_glValidateProgram #-}
    ptr_glValidateProgram :: FunPtr (GLuint -> IO ())
    ptr_glValidateProgram :: FunPtr (GLuint -> IO ())
    ptr_glValidateProgram = 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
    "glValidateProgram"

    -- glValidateProgramARB --------------------------------------------------------

    -- | This command is an alias for 'glValidateProgram'.
    glValidateProgramARB
      :: MonadIO m
      => GLhandleARB -- ^ @programObj@ of type @handleARB@.
      -> m ()
    glValidateProgramARB :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glValidateProgramARB 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 ()
    dyn144 FunPtr (GLuint -> IO ())
    ptr_glValidateProgramARB GLuint
    v1

    {-# NOINLINE ptr_glValidateProgramARB #-}
    ptr_glValidateProgramARB :: FunPtr (GLhandleARB -> IO ())
    ptr_glValidateProgramARB :: FunPtr (GLuint -> IO ())
    ptr_glValidateProgramARB = 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
    "glValidateProgramARB"

    -- glValidateProgramPipeline ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glValidateProgramPipeline.xhtml OpenGL 4.x>.
    glValidateProgramPipeline
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> m ()
    glValidateProgramPipeline :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glValidateProgramPipeline 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_glValidateProgramPipeline GLuint
    v1

    {-# NOINLINE ptr_glValidateProgramPipeline #-}
    ptr_glValidateProgramPipeline :: FunPtr (GLuint -> IO ())
    ptr_glValidateProgramPipeline :: FunPtr (GLuint -> IO ())
    ptr_glValidateProgramPipeline = 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
    "glValidateProgramPipeline"

    -- glValidateProgramPipelineEXT ------------------------------------------------

    glValidateProgramPipelineEXT
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> m ()
    glValidateProgramPipelineEXT :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glValidateProgramPipelineEXT 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_glValidateProgramPipelineEXT GLuint
    v1

    {-# NOINLINE ptr_glValidateProgramPipelineEXT #-}
    ptr_glValidateProgramPipelineEXT :: FunPtr (GLuint -> IO ())
    ptr_glValidateProgramPipelineEXT :: FunPtr (GLuint -> IO ())
    ptr_glValidateProgramPipelineEXT = 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
    "glValidateProgramPipelineEXT"

    -- glVariantArrayObjectATI -----------------------------------------------------

    glVariantArrayObjectATI
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @type@ of type [ScalarType](Graphics-GL-Groups.html#ScalarType).
      -> GLsizei -- ^ @stride@.
      -> GLuint -- ^ @buffer@.
      -> GLuint -- ^ @offset@.
      -> m ()
    glVariantArrayObjectATI :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> m ()
    glVariantArrayObjectATI GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    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 -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ()
    dyn879 FunPtr (GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ())
    ptr_glVariantArrayObjectATI GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    v5

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

    -- glVariantPointerEXT ---------------------------------------------------------

    glVariantPointerEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @type@ of type [ScalarType](Graphics-GL-Groups.html#ScalarType).
      -> GLuint -- ^ @stride@.
      -> Ptr a -- ^ @addr@ pointing to @COMPSIZE(id,type,stride)@ elements of type @a@.
      -> m ()
    glVariantPointerEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> Ptr a -> m ()
    glVariantPointerEXT 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 ()
    dyn880 FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    ptr_glVariantPointerEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 Ptr a
    v4

    {-# NOINLINE ptr_glVariantPointerEXT #-}
    ptr_glVariantPointerEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr a -> IO ())
    ptr_glVariantPointerEXT :: forall a. FunPtr (GLuint -> GLuint -> GLuint -> Ptr a -> IO ())
    ptr_glVariantPointerEXT = 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
    "glVariantPointerEXT"

    -- glVariantbvEXT --------------------------------------------------------------

    glVariantbvEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> Ptr GLbyte -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLbyte@.
      -> m ()
    glVariantbvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLbyte -> m ()
    glVariantbvEXT GLuint
    v1 Ptr GLbyte
    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 GLbyte -> IO ())
    -> GLuint -> Ptr GLbyte -> IO ()
    dyn881 FunPtr (GLuint -> Ptr GLbyte -> IO ())
    ptr_glVariantbvEXT GLuint
    v1 Ptr GLbyte
    v2

    {-# NOINLINE ptr_glVariantbvEXT #-}
    ptr_glVariantbvEXT :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
    ptr_glVariantbvEXT :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
    ptr_glVariantbvEXT = IO (FunPtr (GLuint -> Ptr GLbyte -> IO ()))
    -> FunPtr (GLuint -> Ptr GLbyte -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLuint -> Ptr GLbyte -> IO ()))
     -> FunPtr (GLuint -> Ptr GLbyte -> IO ()))
    -> IO (FunPtr (GLuint -> Ptr GLbyte -> IO ()))
    -> FunPtr (GLuint -> Ptr GLbyte -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLuint -> Ptr GLbyte -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVariantbvEXT"

    -- glVariantdvEXT --------------------------------------------------------------

    glVariantdvEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> Ptr GLdouble -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLdouble@.
      -> m ()
    glVariantdvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
    glVariantdvEXT 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 ()
    dyn882 FunPtr (GLuint -> Ptr GLdouble -> IO ())
    ptr_glVariantdvEXT GLuint
    v1 Ptr GLdouble
    v2

    {-# NOINLINE ptr_glVariantdvEXT #-}
    ptr_glVariantdvEXT :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
    ptr_glVariantdvEXT :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
    ptr_glVariantdvEXT = 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
    "glVariantdvEXT"

    -- glVariantfvEXT --------------------------------------------------------------

    glVariantfvEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> Ptr GLfloat -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLfloat@.
      -> m ()
    glVariantfvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfloat -> m ()
    glVariantfvEXT 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 ()
    dyn394 FunPtr (GLuint -> Ptr GLfloat -> IO ())
    ptr_glVariantfvEXT GLuint
    v1 Ptr GLfloat
    v2

    {-# NOINLINE ptr_glVariantfvEXT #-}
    ptr_glVariantfvEXT :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
    ptr_glVariantfvEXT :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
    ptr_glVariantfvEXT = 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
    "glVariantfvEXT"

    -- glVariantivEXT --------------------------------------------------------------

    glVariantivEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> Ptr GLint -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLint@.
      -> m ()
    glVariantivEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLsizei -> m ()
    glVariantivEXT GLuint
    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 (GLuint -> Ptr GLsizei -> IO ())
    -> GLuint -> Ptr GLsizei -> IO ()
    dyn741 FunPtr (GLuint -> Ptr GLsizei -> IO ())
    ptr_glVariantivEXT GLuint
    v1 Ptr GLsizei
    v2

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

    -- glVariantsvEXT --------------------------------------------------------------

    glVariantsvEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> Ptr GLshort -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLshort@.
      -> m ()
    glVariantsvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLshort -> m ()
    glVariantsvEXT GLuint
    v1 Ptr GLshort
    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 GLshort -> IO ())
    -> GLuint -> Ptr GLshort -> IO ()
    dyn883 FunPtr (GLuint -> Ptr GLshort -> IO ())
    ptr_glVariantsvEXT GLuint
    v1 Ptr GLshort
    v2

    {-# NOINLINE ptr_glVariantsvEXT #-}
    ptr_glVariantsvEXT :: FunPtr (GLuint -> Ptr GLshort -> IO ())
    ptr_glVariantsvEXT :: FunPtr (GLuint -> Ptr GLshort -> IO ())
    ptr_glVariantsvEXT = IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
    -> FunPtr (GLuint -> Ptr GLshort -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
     -> FunPtr (GLuint -> Ptr GLshort -> IO ()))
    -> IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
    -> FunPtr (GLuint -> Ptr GLshort -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVariantsvEXT"

    -- glVariantubvEXT -------------------------------------------------------------

    glVariantubvEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> Ptr GLubyte -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLubyte@.
      -> m ()
    glVariantubvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLboolean -> m ()
    glVariantubvEXT 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 ()
    dyn393 FunPtr (GLuint -> Ptr GLboolean -> IO ())
    ptr_glVariantubvEXT GLuint
    v1 Ptr GLboolean
    v2

    {-# NOINLINE ptr_glVariantubvEXT #-}
    ptr_glVariantubvEXT :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
    ptr_glVariantubvEXT :: FunPtr (GLuint -> Ptr GLboolean -> IO ())
    ptr_glVariantubvEXT = 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
    "glVariantubvEXT"

    -- glVariantuivEXT -------------------------------------------------------------

    glVariantuivEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> Ptr GLuint -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLuint@.
      -> m ()
    glVariantuivEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLuint -> m ()
    glVariantuivEXT GLuint
    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 (GLuint -> Ptr GLuint -> IO ())
    -> GLuint -> Ptr GLuint -> IO ()
    dyn201 FunPtr (GLuint -> Ptr GLuint -> IO ())
    ptr_glVariantuivEXT GLuint
    v1 Ptr GLuint
    v2

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

    -- glVariantusvEXT -------------------------------------------------------------

    glVariantusvEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> Ptr GLushort -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLushort@.
      -> m ()
    glVariantusvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLushort -> m ()
    glVariantusvEXT GLuint
    v1 Ptr GLushort
    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 GLushort -> IO ())
    -> GLuint -> Ptr GLushort -> IO ()
    dyn884 FunPtr (GLuint -> Ptr GLushort -> IO ())
    ptr_glVariantusvEXT GLuint
    v1 Ptr GLushort
    v2

    {-# NOINLINE ptr_glVariantusvEXT #-}
    ptr_glVariantusvEXT :: FunPtr (GLuint -> Ptr GLushort -> IO ())
    ptr_glVariantusvEXT :: FunPtr (GLuint -> Ptr GLushort -> IO ())
    ptr_glVariantusvEXT = IO (FunPtr (GLuint -> Ptr GLushort -> IO ()))
    -> FunPtr (GLuint -> Ptr GLushort -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLuint -> Ptr GLushort -> IO ()))
     -> FunPtr (GLuint -> Ptr GLushort -> IO ()))
    -> IO (FunPtr (GLuint -> Ptr GLushort -> IO ()))
    -> FunPtr (GLuint -> Ptr GLushort -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLuint -> Ptr GLushort -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVariantusvEXT"

    -- glVertex2bOES ---------------------------------------------------------------

    glVertex2bOES
      :: MonadIO m
      => GLbyte -- ^ @x@.
      -> GLbyte -- ^ @y@.
      -> m ()
    glVertex2bOES :: forall (m :: * -> *). MonadIO m => GLbyte -> GLbyte -> m ()
    glVertex2bOES GLbyte
    v1 GLbyte
    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 (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> IO ()
    dyn765 FunPtr (GLbyte -> GLbyte -> IO ())
    ptr_glVertex2bOES GLbyte
    v1 GLbyte
    v2

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

    -- glVertex2bvOES --------------------------------------------------------------

    glVertex2bvOES
      :: MonadIO m
      => Ptr GLbyte -- ^ @coords@ pointing to @2@ elements of type @GLbyte@.
      -> m ()
    glVertex2bvOES :: forall (m :: * -> *). MonadIO m => Ptr GLbyte -> m ()
    glVertex2bvOES Ptr GLbyte
    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 (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> IO ()
    dyn40 FunPtr (Ptr GLbyte -> IO ())
    ptr_glVertex2bvOES Ptr GLbyte
    v1

    {-# NOINLINE ptr_glVertex2bvOES #-}
    ptr_glVertex2bvOES :: FunPtr (Ptr GLbyte -> IO ())
    ptr_glVertex2bvOES :: FunPtr (Ptr GLbyte -> IO ())
    ptr_glVertex2bvOES = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ()))
    -> IO (FunPtr (Ptr GLbyte -> IO ()))
    -> FunPtr (Ptr GLbyte -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLbyte -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex2bvOES"

    -- glVertex2d ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex2dv'.
    glVertex2d
      :: MonadIO m
      => GLdouble -- ^ @x@ of type @CoordD@.
      -> GLdouble -- ^ @y@ of type @CoordD@.
      -> m ()
    glVertex2d :: forall (m :: * -> *). MonadIO m => GLdouble -> GLdouble -> m ()
    glVertex2d GLdouble
    v1 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 (GLdouble -> GLdouble -> IO ())
    -> GLdouble -> GLdouble -> IO ()
    dyn225 FunPtr (GLdouble -> GLdouble -> IO ())
    ptr_glVertex2d GLdouble
    v1 GLdouble
    v2

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

    -- glVertex2dv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex2dv
      :: MonadIO m
      => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
      -> m ()
    glVertex2dv :: forall (m :: * -> *). MonadIO m => Ptr GLdouble -> m ()
    glVertex2dv Ptr GLdouble
    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 (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> IO ()
    dyn42 FunPtr (Ptr GLdouble -> IO ())
    ptr_glVertex2dv Ptr GLdouble
    v1

    {-# NOINLINE ptr_glVertex2dv #-}
    ptr_glVertex2dv :: FunPtr (Ptr GLdouble -> IO ())
    ptr_glVertex2dv :: FunPtr (Ptr GLdouble -> IO ())
    ptr_glVertex2dv = IO (FunPtr (Ptr GLdouble -> IO ()))
    -> FunPtr (Ptr GLdouble -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLdouble -> IO ()))
     -> FunPtr (Ptr GLdouble -> IO ()))
    -> IO (FunPtr (Ptr GLdouble -> IO ()))
    -> FunPtr (Ptr GLdouble -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLdouble -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex2dv"

    -- glVertex2f ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex2fv'.
    glVertex2f
      :: MonadIO m
      => GLfloat -- ^ @x@ of type @CoordF@.
      -> GLfloat -- ^ @y@ of type @CoordF@.
      -> m ()
    glVertex2f :: forall (m :: * -> *). MonadIO m => GLfloat -> GLfloat -> m ()
    glVertex2f GLfloat
    v1 GLfloat
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> IO ()
    dyn230 FunPtr (GLfloat -> GLfloat -> IO ())
    ptr_glVertex2f GLfloat
    v1 GLfloat
    v2

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

    -- glVertex2fv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex2fv
      :: MonadIO m
      => Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
      -> m ()
    glVertex2fv :: forall (m :: * -> *). MonadIO m => Ptr GLfloat -> m ()
    glVertex2fv Ptr GLfloat
    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 (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> IO ()
    dyn44 FunPtr (Ptr GLfloat -> IO ())
    ptr_glVertex2fv Ptr GLfloat
    v1

    {-# NOINLINE ptr_glVertex2fv #-}
    ptr_glVertex2fv :: FunPtr (Ptr GLfloat -> IO ())
    ptr_glVertex2fv :: FunPtr (Ptr GLfloat -> IO ())
    ptr_glVertex2fv = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLfloat -> IO ()))
     -> FunPtr (Ptr GLfloat -> IO ()))
    -> IO (FunPtr (Ptr GLfloat -> IO ()))
    -> FunPtr (Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex2fv"

    -- glVertex2hNV ----------------------------------------------------------------

    -- | The vector equivalent of this command is 'glVertex2hvNV'.
    glVertex2hNV
      :: MonadIO m
      => GLhalfNV -- ^ @x@ of type @Half16NV@.
      -> GLhalfNV -- ^ @y@ of type @Half16NV@.
      -> m ()
    glVertex2hNV :: forall (m :: * -> *). MonadIO m => GLhalfNV -> GLhalfNV -> m ()
    glVertex2hNV GLhalfNV
    v1 GLhalfNV
    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 (GLhalfNV -> GLhalfNV -> IO ())
    -> GLhalfNV -> GLhalfNV -> IO ()
    dyn770 FunPtr (GLhalfNV -> GLhalfNV -> IO ())
    ptr_glVertex2hNV GLhalfNV
    v1 GLhalfNV
    v2

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

    -- glVertex2hvNV ---------------------------------------------------------------

    glVertex2hvNV
      :: MonadIO m
      => Ptr GLhalfNV -- ^ @v@ pointing to @2@ elements of type @Half16NV@.
      -> m ()
    glVertex2hvNV :: forall (m :: * -> *). MonadIO m => Ptr GLhalfNV -> m ()
    glVertex2hvNV Ptr GLhalfNV
    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 (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> IO ()
    dyn106 FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glVertex2hvNV Ptr GLhalfNV
    v1

    {-# NOINLINE ptr_glVertex2hvNV #-}
    ptr_glVertex2hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glVertex2hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glVertex2hvNV = IO (FunPtr (Ptr GLhalfNV -> IO ()))
    -> FunPtr (Ptr GLhalfNV -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLhalfNV -> IO ()))
     -> FunPtr (Ptr GLhalfNV -> IO ()))
    -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
    -> FunPtr (Ptr GLhalfNV -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex2hvNV"

    -- glVertex2i ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex2iv'.
    glVertex2i
      :: MonadIO m
      => GLint -- ^ @x@ of type @CoordI@.
      -> GLint -- ^ @y@ of type @CoordI@.
      -> m ()
    glVertex2i :: forall (m :: * -> *). MonadIO m => GLsizei -> GLsizei -> m ()
    glVertex2i GLsizei
    v1 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 -> GLsizei -> IO ()) -> GLsizei -> GLsizei -> IO ()
    dyn277 FunPtr (GLsizei -> GLsizei -> IO ())
    ptr_glVertex2i GLsizei
    v1 GLsizei
    v2

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

    -- glVertex2iv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex2iv
      :: MonadIO m
      => Ptr GLint -- ^ @v@ pointing to @2@ elements of type @CoordI@.
      -> m ()
    glVertex2iv :: forall (m :: * -> *). MonadIO m => Ptr GLsizei -> m ()
    glVertex2iv Ptr GLsizei
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLsizei -> IO ()) -> Ptr GLsizei -> IO ()
    dyn46 FunPtr (Ptr GLsizei -> IO ())
    ptr_glVertex2iv Ptr GLsizei
    v1

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

    -- glVertex2s ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex2sv'.
    glVertex2s
      :: MonadIO m
      => GLshort -- ^ @x@ of type @CoordS@.
      -> GLshort -- ^ @y@ of type @CoordS@.
      -> m ()
    glVertex2s :: forall (m :: * -> *). MonadIO m => GLshort -> GLshort -> m ()
    glVertex2s GLshort
    v1 GLshort
    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 (GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> IO ()
    dyn709 FunPtr (GLshort -> GLshort -> IO ())
    ptr_glVertex2s GLshort
    v1 GLshort
    v2

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

    -- glVertex2sv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex2sv
      :: MonadIO m
      => Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
      -> m ()
    glVertex2sv :: forall (m :: * -> *). MonadIO m => Ptr GLshort -> m ()
    glVertex2sv Ptr GLshort
    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 (Ptr GLshort -> IO ()) -> Ptr GLshort -> IO ()
    dyn48 FunPtr (Ptr GLshort -> IO ())
    ptr_glVertex2sv Ptr GLshort
    v1

    {-# NOINLINE ptr_glVertex2sv #-}
    ptr_glVertex2sv :: FunPtr (Ptr GLshort -> IO ())
    ptr_glVertex2sv :: FunPtr (Ptr GLshort -> IO ())
    ptr_glVertex2sv = IO (FunPtr (Ptr GLshort -> IO ())) -> FunPtr (Ptr GLshort -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLshort -> IO ()))
     -> FunPtr (Ptr GLshort -> IO ()))
    -> IO (FunPtr (Ptr GLshort -> IO ()))
    -> FunPtr (Ptr GLshort -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLshort -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex2sv"

    -- glVertex2xOES ---------------------------------------------------------------

    glVertex2xOES
      :: MonadIO m
      => GLfixed -- ^ @x@.
      -> m ()
    glVertex2xOES :: forall (m :: * -> *). MonadIO m => GLfixed -> m ()
    glVertex2xOES GLfixed
    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 (GLfixed -> IO ()) -> GLfixed -> IO ()
    dyn87 FunPtr (GLfixed -> IO ())
    ptr_glVertex2xOES GLfixed
    v1

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

    -- glVertex2xvOES --------------------------------------------------------------

    glVertex2xvOES
      :: MonadIO m
      => Ptr GLfixed -- ^ @coords@ pointing to @2@ elements of type @GLfixed@.
      -> m ()
    glVertex2xvOES :: forall (m :: * -> *). MonadIO m => Ptr GLfixed -> m ()
    glVertex2xvOES Ptr GLfixed
    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 (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> IO ()
    dyn114 FunPtr (Ptr GLfixed -> IO ())
    ptr_glVertex2xvOES Ptr GLfixed
    v1

    {-# NOINLINE ptr_glVertex2xvOES #-}
    ptr_glVertex2xvOES :: FunPtr (Ptr GLfixed -> IO ())
    ptr_glVertex2xvOES :: FunPtr (Ptr GLfixed -> IO ())
    ptr_glVertex2xvOES = IO (FunPtr (Ptr GLfixed -> IO ())) -> FunPtr (Ptr GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLfixed -> IO ()))
     -> FunPtr (Ptr GLfixed -> IO ()))
    -> IO (FunPtr (Ptr GLfixed -> IO ()))
    -> FunPtr (Ptr GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex2xvOES"

    -- glVertex3bOES ---------------------------------------------------------------

    glVertex3bOES
      :: MonadIO m
      => GLbyte -- ^ @x@.
      -> GLbyte -- ^ @y@.
      -> GLbyte -- ^ @z@.
      -> m ()
    glVertex3bOES :: forall (m :: * -> *).
    MonadIO m =>
    GLbyte -> GLbyte -> GLbyte -> m ()
    glVertex3bOES GLbyte
    v1 GLbyte
    v2 GLbyte
    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 (GLbyte -> GLbyte -> GLbyte -> IO ())
    -> GLbyte -> GLbyte -> GLbyte -> IO ()
    dyn39 FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
    ptr_glVertex3bOES GLbyte
    v1 GLbyte
    v2 GLbyte
    v3

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

    -- glVertex3bvOES --------------------------------------------------------------

    glVertex3bvOES
      :: MonadIO m
      => Ptr GLbyte -- ^ @coords@ pointing to @3@ elements of type @GLbyte@.
      -> m ()
    glVertex3bvOES :: forall (m :: * -> *). MonadIO m => Ptr GLbyte -> m ()
    glVertex3bvOES Ptr GLbyte
    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 (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> IO ()
    dyn40 FunPtr (Ptr GLbyte -> IO ())
    ptr_glVertex3bvOES Ptr GLbyte
    v1

    {-# NOINLINE ptr_glVertex3bvOES #-}
    ptr_glVertex3bvOES :: FunPtr (Ptr GLbyte -> IO ())
    ptr_glVertex3bvOES :: FunPtr (Ptr GLbyte -> IO ())
    ptr_glVertex3bvOES = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ()))
    -> IO (FunPtr (Ptr GLbyte -> IO ()))
    -> FunPtr (Ptr GLbyte -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLbyte -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex3bvOES"

    -- glVertex3d ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex3dv'.
    glVertex3d
      :: MonadIO m
      => GLdouble -- ^ @x@ of type @CoordD@.
      -> GLdouble -- ^ @y@ of type @CoordD@.
      -> GLdouble -- ^ @z@ of type @CoordD@.
      -> m ()
    glVertex3d :: forall (m :: * -> *).
    MonadIO m =>
    GLdouble -> GLdouble -> GLdouble -> m ()
    glVertex3d GLdouble
    v1 GLdouble
    v2 GLdouble
    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 (GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn41 FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glVertex3d GLdouble
    v1 GLdouble
    v2 GLdouble
    v3

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

    -- glVertex3dv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex3dv
      :: MonadIO m
      => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
      -> m ()
    glVertex3dv :: forall (m :: * -> *). MonadIO m => Ptr GLdouble -> m ()
    glVertex3dv Ptr GLdouble
    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 (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> IO ()
    dyn42 FunPtr (Ptr GLdouble -> IO ())
    ptr_glVertex3dv Ptr GLdouble
    v1

    {-# NOINLINE ptr_glVertex3dv #-}
    ptr_glVertex3dv :: FunPtr (Ptr GLdouble -> IO ())
    ptr_glVertex3dv :: FunPtr (Ptr GLdouble -> IO ())
    ptr_glVertex3dv = IO (FunPtr (Ptr GLdouble -> IO ()))
    -> FunPtr (Ptr GLdouble -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLdouble -> IO ()))
     -> FunPtr (Ptr GLdouble -> IO ()))
    -> IO (FunPtr (Ptr GLdouble -> IO ()))
    -> FunPtr (Ptr GLdouble -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLdouble -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex3dv"

    -- glVertex3f ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex3fv'.
    glVertex3f
      :: MonadIO m
      => GLfloat -- ^ @x@ of type @CoordF@.
      -> GLfloat -- ^ @y@ of type @CoordF@.
      -> GLfloat -- ^ @z@ of type @CoordF@.
      -> m ()
    glVertex3f :: forall (m :: * -> *).
    MonadIO m =>
    GLfloat -> GLfloat -> GLfloat -> m ()
    glVertex3f GLfloat
    v1 GLfloat
    v2 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 (GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn43 FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glVertex3f GLfloat
    v1 GLfloat
    v2 GLfloat
    v3

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

    -- glVertex3fv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex3fv
      :: MonadIO m
      => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
      -> m ()
    glVertex3fv :: forall (m :: * -> *). MonadIO m => Ptr GLfloat -> m ()
    glVertex3fv Ptr GLfloat
    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 (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> IO ()
    dyn44 FunPtr (Ptr GLfloat -> IO ())
    ptr_glVertex3fv Ptr GLfloat
    v1

    {-# NOINLINE ptr_glVertex3fv #-}
    ptr_glVertex3fv :: FunPtr (Ptr GLfloat -> IO ())
    ptr_glVertex3fv :: FunPtr (Ptr GLfloat -> IO ())
    ptr_glVertex3fv = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLfloat -> IO ()))
     -> FunPtr (Ptr GLfloat -> IO ()))
    -> IO (FunPtr (Ptr GLfloat -> IO ()))
    -> FunPtr (Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex3fv"

    -- glVertex3hNV ----------------------------------------------------------------

    -- | The vector equivalent of this command is 'glVertex3hvNV'.
    glVertex3hNV
      :: MonadIO m
      => GLhalfNV -- ^ @x@ of type @Half16NV@.
      -> GLhalfNV -- ^ @y@ of type @Half16NV@.
      -> GLhalfNV -- ^ @z@ of type @Half16NV@.
      -> m ()
    glVertex3hNV :: forall (m :: * -> *).
    MonadIO m =>
    GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
    glVertex3hNV GLhalfNV
    v1 GLhalfNV
    v2 GLhalfNV
    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 (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
    -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
    dyn105 FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
    ptr_glVertex3hNV GLhalfNV
    v1 GLhalfNV
    v2 GLhalfNV
    v3

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

    -- glVertex3hvNV ---------------------------------------------------------------

    glVertex3hvNV
      :: MonadIO m
      => Ptr GLhalfNV -- ^ @v@ pointing to @3@ elements of type @Half16NV@.
      -> m ()
    glVertex3hvNV :: forall (m :: * -> *). MonadIO m => Ptr GLhalfNV -> m ()
    glVertex3hvNV Ptr GLhalfNV
    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 (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> IO ()
    dyn106 FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glVertex3hvNV Ptr GLhalfNV
    v1

    {-# NOINLINE ptr_glVertex3hvNV #-}
    ptr_glVertex3hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glVertex3hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glVertex3hvNV = IO (FunPtr (Ptr GLhalfNV -> IO ()))
    -> FunPtr (Ptr GLhalfNV -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLhalfNV -> IO ()))
     -> FunPtr (Ptr GLhalfNV -> IO ()))
    -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
    -> FunPtr (Ptr GLhalfNV -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex3hvNV"

    -- glVertex3i ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex3iv'.
    glVertex3i
      :: MonadIO m
      => GLint -- ^ @x@ of type @CoordI@.
      -> GLint -- ^ @y@ of type @CoordI@.
      -> GLint -- ^ @z@ of type @CoordI@.
      -> m ()
    glVertex3i :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei -> GLsizei -> GLsizei -> m ()
    glVertex3i GLsizei
    v1 GLsizei
    v2 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 (GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn45 FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glVertex3i GLsizei
    v1 GLsizei
    v2 GLsizei
    v3

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

    -- glVertex3iv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex3iv
      :: MonadIO m
      => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @CoordI@.
      -> m ()
    glVertex3iv :: forall (m :: * -> *). MonadIO m => Ptr GLsizei -> m ()
    glVertex3iv Ptr GLsizei
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLsizei -> IO ()) -> Ptr GLsizei -> IO ()
    dyn46 FunPtr (Ptr GLsizei -> IO ())
    ptr_glVertex3iv Ptr GLsizei
    v1

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

    -- glVertex3s ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex3sv'.
    glVertex3s
      :: MonadIO m
      => GLshort -- ^ @x@ of type @CoordS@.
      -> GLshort -- ^ @y@ of type @CoordS@.
      -> GLshort -- ^ @z@ of type @CoordS@.
      -> m ()
    glVertex3s :: forall (m :: * -> *).
    MonadIO m =>
    GLshort -> GLshort -> GLshort -> m ()
    glVertex3s GLshort
    v1 GLshort
    v2 GLshort
    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 (GLshort -> GLshort -> GLshort -> IO ())
    -> GLshort -> GLshort -> GLshort -> IO ()
    dyn47 FunPtr (GLshort -> GLshort -> GLshort -> IO ())
    ptr_glVertex3s GLshort
    v1 GLshort
    v2 GLshort
    v3

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

    -- glVertex3sv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex3sv
      :: MonadIO m
      => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
      -> m ()
    glVertex3sv :: forall (m :: * -> *). MonadIO m => Ptr GLshort -> m ()
    glVertex3sv Ptr GLshort
    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 (Ptr GLshort -> IO ()) -> Ptr GLshort -> IO ()
    dyn48 FunPtr (Ptr GLshort -> IO ())
    ptr_glVertex3sv Ptr GLshort
    v1

    {-# NOINLINE ptr_glVertex3sv #-}
    ptr_glVertex3sv :: FunPtr (Ptr GLshort -> IO ())
    ptr_glVertex3sv :: FunPtr (Ptr GLshort -> IO ())
    ptr_glVertex3sv = IO (FunPtr (Ptr GLshort -> IO ())) -> FunPtr (Ptr GLshort -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLshort -> IO ()))
     -> FunPtr (Ptr GLshort -> IO ()))
    -> IO (FunPtr (Ptr GLshort -> IO ()))
    -> FunPtr (Ptr GLshort -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLshort -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex3sv"

    -- glVertex3xOES ---------------------------------------------------------------

    glVertex3xOES
      :: MonadIO m
      => GLfixed -- ^ @x@.
      -> GLfixed -- ^ @y@.
      -> m ()
    glVertex3xOES :: forall (m :: * -> *). MonadIO m => GLfixed -> GLfixed -> m ()
    glVertex3xOES GLfixed
    v1 GLfixed
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> IO ()
    dyn232 FunPtr (GLfixed -> GLfixed -> IO ())
    ptr_glVertex3xOES GLfixed
    v1 GLfixed
    v2

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

    -- glVertex3xvOES --------------------------------------------------------------

    glVertex3xvOES
      :: MonadIO m
      => Ptr GLfixed -- ^ @coords@ pointing to @3@ elements of type @GLfixed@.
      -> m ()
    glVertex3xvOES :: forall (m :: * -> *). MonadIO m => Ptr GLfixed -> m ()
    glVertex3xvOES Ptr GLfixed
    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 (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> IO ()
    dyn114 FunPtr (Ptr GLfixed -> IO ())
    ptr_glVertex3xvOES Ptr GLfixed
    v1

    {-# NOINLINE ptr_glVertex3xvOES #-}
    ptr_glVertex3xvOES :: FunPtr (Ptr GLfixed -> IO ())
    ptr_glVertex3xvOES :: FunPtr (Ptr GLfixed -> IO ())
    ptr_glVertex3xvOES = IO (FunPtr (Ptr GLfixed -> IO ())) -> FunPtr (Ptr GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLfixed -> IO ()))
     -> FunPtr (Ptr GLfixed -> IO ()))
    -> IO (FunPtr (Ptr GLfixed -> IO ()))
    -> FunPtr (Ptr GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex3xvOES"

    -- glVertex4bOES ---------------------------------------------------------------

    glVertex4bOES
      :: MonadIO m
      => GLbyte -- ^ @x@.
      -> GLbyte -- ^ @y@.
      -> GLbyte -- ^ @z@.
      -> GLbyte -- ^ @w@.
      -> m ()
    glVertex4bOES :: forall (m :: * -> *).
    MonadIO m =>
    GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
    glVertex4bOES GLbyte
    v1 GLbyte
    v2 GLbyte
    v3 GLbyte
    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 (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
    -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()
    dyn115 FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
    ptr_glVertex4bOES GLbyte
    v1 GLbyte
    v2 GLbyte
    v3 GLbyte
    v4

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

    -- glVertex4bvOES --------------------------------------------------------------

    glVertex4bvOES
      :: MonadIO m
      => Ptr GLbyte -- ^ @coords@ pointing to @4@ elements of type @GLbyte@.
      -> m ()
    glVertex4bvOES :: forall (m :: * -> *). MonadIO m => Ptr GLbyte -> m ()
    glVertex4bvOES Ptr GLbyte
    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 (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> IO ()
    dyn40 FunPtr (Ptr GLbyte -> IO ())
    ptr_glVertex4bvOES Ptr GLbyte
    v1

    {-# NOINLINE ptr_glVertex4bvOES #-}
    ptr_glVertex4bvOES :: FunPtr (Ptr GLbyte -> IO ())
    ptr_glVertex4bvOES :: FunPtr (Ptr GLbyte -> IO ())
    ptr_glVertex4bvOES = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ()))
    -> IO (FunPtr (Ptr GLbyte -> IO ()))
    -> FunPtr (Ptr GLbyte -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLbyte -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex4bvOES"

    -- glVertex4d ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex4dv'.
    glVertex4d
      :: MonadIO m
      => GLdouble -- ^ @x@ of type @CoordD@.
      -> GLdouble -- ^ @y@ of type @CoordD@.
      -> GLdouble -- ^ @z@ of type @CoordD@.
      -> GLdouble -- ^ @w@ of type @CoordD@.
      -> m ()
    glVertex4d :: forall (m :: * -> *).
    MonadIO m =>
    GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
    glVertex4d GLdouble
    v1 GLdouble
    v2 GLdouble
    v3 GLdouble
    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 (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn116 FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glVertex4d GLdouble
    v1 GLdouble
    v2 GLdouble
    v3 GLdouble
    v4

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

    -- glVertex4dv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex4dv
      :: MonadIO m
      => Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @CoordD@.
      -> m ()
    glVertex4dv :: forall (m :: * -> *). MonadIO m => Ptr GLdouble -> m ()
    glVertex4dv Ptr GLdouble
    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 (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> IO ()
    dyn42 FunPtr (Ptr GLdouble -> IO ())
    ptr_glVertex4dv Ptr GLdouble
    v1

    {-# NOINLINE ptr_glVertex4dv #-}
    ptr_glVertex4dv :: FunPtr (Ptr GLdouble -> IO ())
    ptr_glVertex4dv :: FunPtr (Ptr GLdouble -> IO ())
    ptr_glVertex4dv = IO (FunPtr (Ptr GLdouble -> IO ()))
    -> FunPtr (Ptr GLdouble -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLdouble -> IO ()))
     -> FunPtr (Ptr GLdouble -> IO ()))
    -> IO (FunPtr (Ptr GLdouble -> IO ()))
    -> FunPtr (Ptr GLdouble -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLdouble -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex4dv"

    -- glVertex4f ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex4fv'.
    glVertex4f
      :: MonadIO m
      => GLfloat -- ^ @x@ of type @CoordF@.
      -> GLfloat -- ^ @y@ of type @CoordF@.
      -> GLfloat -- ^ @z@ of type @CoordF@.
      -> GLfloat -- ^ @w@ of type @CoordF@.
      -> m ()
    glVertex4f :: forall (m :: * -> *).
    MonadIO m =>
    GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
    glVertex4f GLfloat
    v1 GLfloat
    v2 GLfloat
    v3 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 (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn52 FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glVertex4f GLfloat
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4

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

    -- glVertex4fv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex4fv
      :: MonadIO m
      => Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
      -> m ()
    glVertex4fv :: forall (m :: * -> *). MonadIO m => Ptr GLfloat -> m ()
    glVertex4fv Ptr GLfloat
    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 (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> IO ()
    dyn44 FunPtr (Ptr GLfloat -> IO ())
    ptr_glVertex4fv Ptr GLfloat
    v1

    {-# NOINLINE ptr_glVertex4fv #-}
    ptr_glVertex4fv :: FunPtr (Ptr GLfloat -> IO ())
    ptr_glVertex4fv :: FunPtr (Ptr GLfloat -> IO ())
    ptr_glVertex4fv = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLfloat -> IO ()))
     -> FunPtr (Ptr GLfloat -> IO ()))
    -> IO (FunPtr (Ptr GLfloat -> IO ()))
    -> FunPtr (Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex4fv"

    -- glVertex4hNV ----------------------------------------------------------------

    -- | The vector equivalent of this command is 'glVertex4hvNV'.
    glVertex4hNV
      :: MonadIO m
      => GLhalfNV -- ^ @x@ of type @Half16NV@.
      -> GLhalfNV -- ^ @y@ of type @Half16NV@.
      -> GLhalfNV -- ^ @z@ of type @Half16NV@.
      -> GLhalfNV -- ^ @w@ of type @Half16NV@.
      -> m ()
    glVertex4hNV :: forall (m :: * -> *).
    MonadIO m =>
    GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
    glVertex4hNV GLhalfNV
    v1 GLhalfNV
    v2 GLhalfNV
    v3 GLhalfNV
    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 (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
    -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
    dyn119 FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
    ptr_glVertex4hNV GLhalfNV
    v1 GLhalfNV
    v2 GLhalfNV
    v3 GLhalfNV
    v4

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

    -- glVertex4hvNV ---------------------------------------------------------------

    glVertex4hvNV
      :: MonadIO m
      => Ptr GLhalfNV -- ^ @v@ pointing to @4@ elements of type @Half16NV@.
      -> m ()
    glVertex4hvNV :: forall (m :: * -> *). MonadIO m => Ptr GLhalfNV -> m ()
    glVertex4hvNV Ptr GLhalfNV
    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 (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> IO ()
    dyn106 FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glVertex4hvNV Ptr GLhalfNV
    v1

    {-# NOINLINE ptr_glVertex4hvNV #-}
    ptr_glVertex4hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glVertex4hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glVertex4hvNV = IO (FunPtr (Ptr GLhalfNV -> IO ()))
    -> FunPtr (Ptr GLhalfNV -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLhalfNV -> IO ()))
     -> FunPtr (Ptr GLhalfNV -> IO ()))
    -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
    -> FunPtr (Ptr GLhalfNV -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLhalfNV -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex4hvNV"

    -- glVertex4i ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex4iv'.
    glVertex4i
      :: MonadIO m
      => GLint -- ^ @x@ of type @CoordI@.
      -> GLint -- ^ @y@ of type @CoordI@.
      -> GLint -- ^ @z@ of type @CoordI@.
      -> GLint -- ^ @w@ of type @CoordI@.
      -> m ()
    glVertex4i :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
    glVertex4i GLsizei
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn82 FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glVertex4i GLsizei
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4

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

    -- glVertex4iv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex4iv
      :: MonadIO m
      => Ptr GLint -- ^ @v@ pointing to @4@ elements of type @CoordI@.
      -> m ()
    glVertex4iv :: forall (m :: * -> *). MonadIO m => Ptr GLsizei -> m ()
    glVertex4iv Ptr GLsizei
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLsizei -> IO ()) -> Ptr GLsizei -> IO ()
    dyn46 FunPtr (Ptr GLsizei -> IO ())
    ptr_glVertex4iv Ptr GLsizei
    v1

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

    -- glVertex4s ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex4sv'.
    glVertex4s
      :: MonadIO m
      => GLshort -- ^ @x@ of type @CoordS@.
      -> GLshort -- ^ @y@ of type @CoordS@.
      -> GLshort -- ^ @z@ of type @CoordS@.
      -> GLshort -- ^ @w@ of type @CoordS@.
      -> m ()
    glVertex4s :: forall (m :: * -> *).
    MonadIO m =>
    GLshort -> GLshort -> GLshort -> GLshort -> m ()
    glVertex4s GLshort
    v1 GLshort
    v2 GLshort
    v3 GLshort
    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 (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
    -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
    dyn120 FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
    ptr_glVertex4s GLshort
    v1 GLshort
    v2 GLshort
    v3 GLshort
    v4

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

    -- glVertex4sv -----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
    glVertex4sv
      :: MonadIO m
      => Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @CoordS@.
      -> m ()
    glVertex4sv :: forall (m :: * -> *). MonadIO m => Ptr GLshort -> m ()
    glVertex4sv Ptr GLshort
    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 (Ptr GLshort -> IO ()) -> Ptr GLshort -> IO ()
    dyn48 FunPtr (Ptr GLshort -> IO ())
    ptr_glVertex4sv Ptr GLshort
    v1

    {-# NOINLINE ptr_glVertex4sv #-}
    ptr_glVertex4sv :: FunPtr (Ptr GLshort -> IO ())
    ptr_glVertex4sv :: FunPtr (Ptr GLshort -> IO ())
    ptr_glVertex4sv = IO (FunPtr (Ptr GLshort -> IO ())) -> FunPtr (Ptr GLshort -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLshort -> IO ()))
     -> FunPtr (Ptr GLshort -> IO ()))
    -> IO (FunPtr (Ptr GLshort -> IO ()))
    -> FunPtr (Ptr GLshort -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLshort -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex4sv"

    -- glVertex4xOES ---------------------------------------------------------------

    glVertex4xOES
      :: MonadIO m
      => GLfixed -- ^ @x@.
      -> GLfixed -- ^ @y@.
      -> GLfixed -- ^ @z@.
      -> m ()
    glVertex4xOES :: forall (m :: * -> *).
    MonadIO m =>
    GLfixed -> GLfixed -> GLfixed -> m ()
    glVertex4xOES GLfixed
    v1 GLfixed
    v2 GLfixed
    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 (GLfixed -> GLfixed -> GLfixed -> IO ())
    -> GLfixed -> GLfixed -> GLfixed -> IO ()
    dyn113 FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
    ptr_glVertex4xOES GLfixed
    v1 GLfixed
    v2 GLfixed
    v3

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

    -- glVertex4xvOES --------------------------------------------------------------

    glVertex4xvOES
      :: MonadIO m
      => Ptr GLfixed -- ^ @coords@ pointing to @4@ elements of type @GLfixed@.
      -> m ()
    glVertex4xvOES :: forall (m :: * -> *). MonadIO m => Ptr GLfixed -> m ()
    glVertex4xvOES Ptr GLfixed
    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 (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> IO ()
    dyn114 FunPtr (Ptr GLfixed -> IO ())
    ptr_glVertex4xvOES Ptr GLfixed
    v1

    {-# NOINLINE ptr_glVertex4xvOES #-}
    ptr_glVertex4xvOES :: FunPtr (Ptr GLfixed -> IO ())
    ptr_glVertex4xvOES :: FunPtr (Ptr GLfixed -> IO ())
    ptr_glVertex4xvOES = IO (FunPtr (Ptr GLfixed -> IO ())) -> FunPtr (Ptr GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (Ptr GLfixed -> IO ()))
     -> FunPtr (Ptr GLfixed -> IO ()))
    -> IO (FunPtr (Ptr GLfixed -> IO ()))
    -> FunPtr (Ptr GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (Ptr GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glVertex4xvOES"

    -- glVertexArrayAttribBinding --------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribBinding.xhtml OpenGL 4.x>.
    glVertexArrayAttribBinding
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @attribindex@.
      -> GLuint -- ^ @bindingindex@.
      -> m ()
    glVertexArrayAttribBinding :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glVertexArrayAttribBinding GLuint
    v1 GLuint
    v2 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 -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> IO ()
    dyn109 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glVertexArrayAttribBinding GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glVertexArrayAttribFormat ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
    glVertexArrayAttribFormat
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @attribindex@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [VertexAttribType](Graphics-GL-Groups.html#VertexAttribType).
      -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> GLuint -- ^ @relativeoffset@.
      -> m ()
    glVertexArrayAttribFormat :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint -> GLsizei -> GLuint -> GLboolean -> GLuint -> m ()
    glVertexArrayAttribFormat GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLboolean
    v5 GLuint
    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 -> GLsizei -> GLuint -> GLboolean -> GLuint -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLboolean
    -> GLuint
    -> IO ()
    dyn885 FunPtr
      (GLuint
       -> GLuint -> GLsizei -> GLuint -> GLboolean -> GLuint -> IO ())
    ptr_glVertexArrayAttribFormat GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLboolean
    v5 GLuint
    v6

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

    -- glVertexArrayAttribIFormat --------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
    glVertexArrayAttribIFormat
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @attribindex@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [VertexAttribIType](Graphics-GL-Groups.html#VertexAttribIType).
      -> GLuint -- ^ @relativeoffset@.
      -> m ()
    glVertexArrayAttribIFormat :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> m ()
    glVertexArrayAttribIFormat GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    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 -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ()
    dyn886 FunPtr (GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ())
    ptr_glVertexArrayAttribIFormat GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    v5

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

    -- glVertexArrayAttribLFormat --------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
    glVertexArrayAttribLFormat
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @attribindex@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [VertexAttribLType](Graphics-GL-Groups.html#VertexAttribLType).
      -> GLuint -- ^ @relativeoffset@.
      -> m ()
    glVertexArrayAttribLFormat :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> m ()
    glVertexArrayAttribLFormat GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    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 -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ()
    dyn886 FunPtr (GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ())
    ptr_glVertexArrayAttribLFormat GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    v5

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

    -- glVertexArrayBindVertexBufferEXT --------------------------------------------

    glVertexArrayBindVertexBufferEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @bindingindex@.
      -> GLuint -- ^ @buffer@.
      -> GLintptr -- ^ @offset@ of type @BufferOffset@.
      -> GLsizei -- ^ @stride@.
      -> m ()
    glVertexArrayBindVertexBufferEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLvdpauSurfaceNV -> GLsizei -> m ()
    glVertexArrayBindVertexBufferEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLvdpauSurfaceNV
    v4 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 -> GLvdpauSurfaceNV -> GLsizei -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLvdpauSurfaceNV
    -> GLsizei
    -> IO ()
    dyn887 FunPtr
      (GLuint
       -> GLuint -> GLuint -> GLvdpauSurfaceNV -> GLsizei -> IO ())
    ptr_glVertexArrayBindVertexBufferEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLvdpauSurfaceNV
    v4 GLsizei
    v5

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

    -- glVertexArrayBindingDivisor -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexBindingDivisor.xhtml OpenGL 4.x>.
    glVertexArrayBindingDivisor
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @bindingindex@.
      -> GLuint -- ^ @divisor@.
      -> m ()
    glVertexArrayBindingDivisor :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glVertexArrayBindingDivisor GLuint
    v1 GLuint
    v2 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 -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> IO ()
    dyn109 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glVertexArrayBindingDivisor GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glVertexArrayColorOffsetEXT -------------------------------------------------

    glVertexArrayColorOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArrayColorOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> m ()
    glVertexArrayColorOffsetEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLsizei
    v5 GLvdpauSurfaceNV
    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
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn888 FunPtr
      (GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    ptr_glVertexArrayColorOffsetEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLsizei
    v5 GLvdpauSurfaceNV
    v6

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

    -- glVertexArrayEdgeFlagOffsetEXT ----------------------------------------------

    glVertexArrayEdgeFlagOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArrayEdgeFlagOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> GLvdpauSurfaceNV -> m ()
    glVertexArrayEdgeFlagOffsetEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLvdpauSurfaceNV
    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 -> GLvdpauSurfaceNV -> IO ())
    -> GLuint -> GLuint -> GLsizei -> GLvdpauSurfaceNV -> IO ()
    dyn889 FunPtr (GLuint -> GLuint -> GLsizei -> GLvdpauSurfaceNV -> IO ())
    ptr_glVertexArrayEdgeFlagOffsetEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLvdpauSurfaceNV
    v4

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

    -- glVertexArrayElementBuffer --------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexArrayElementBuffer.xhtml OpenGL 4.x>.
    glVertexArrayElementBuffer
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> m ()
    glVertexArrayElementBuffer :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glVertexArrayElementBuffer 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 ()
    dyn4 FunPtr (GLuint -> GLuint -> IO ())
    ptr_glVertexArrayElementBuffer GLuint
    v1 GLuint
    v2

    {-# NOINLINE ptr_glVertexArrayElementBuffer #-}
    ptr_glVertexArrayElementBuffer :: FunPtr (GLuint -> GLuint -> IO ())
    ptr_glVertexArrayElementBuffer :: FunPtr (GLuint -> GLuint -> IO ())
    ptr_glVertexArrayElementBuffer = 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
    "glVertexArrayElementBuffer"

    -- glVertexArrayFogCoordOffsetEXT ----------------------------------------------

    glVertexArrayFogCoordOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLenum -- ^ @type@ of type [FogCoordinatePointerType](Graphics-GL-Groups.html#FogCoordinatePointerType).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArrayFogCoordOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLsizei -> GLvdpauSurfaceNV -> m ()
    glVertexArrayFogCoordOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLvdpauSurfaceNV
    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 -> GLsizei -> GLvdpauSurfaceNV -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn890 FunPtr
      (GLuint
       -> GLuint -> GLuint -> GLsizei -> GLvdpauSurfaceNV -> IO ())
    ptr_glVertexArrayFogCoordOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLvdpauSurfaceNV
    v5

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

    -- glVertexArrayIndexOffsetEXT -------------------------------------------------

    glVertexArrayIndexOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLenum -- ^ @type@ of type [IndexPointerType](Graphics-GL-Groups.html#IndexPointerType).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArrayIndexOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLsizei -> GLvdpauSurfaceNV -> m ()
    glVertexArrayIndexOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLvdpauSurfaceNV
    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 -> GLsizei -> GLvdpauSurfaceNV -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn890 FunPtr
      (GLuint
       -> GLuint -> GLuint -> GLsizei -> GLvdpauSurfaceNV -> IO ())
    ptr_glVertexArrayIndexOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLvdpauSurfaceNV
    v5

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

    -- glVertexArrayMultiTexCoordOffsetEXT -----------------------------------------

    glVertexArrayMultiTexCoordOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLenum -- ^ @texunit@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArrayMultiTexCoordOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> m ()
    glVertexArrayMultiTexCoordOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 GLsizei
    v6 GLvdpauSurfaceNV
    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
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn891 FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    ptr_glVertexArrayMultiTexCoordOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 GLsizei
    v6 GLvdpauSurfaceNV
    v7

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

    -- glVertexArrayNormalOffsetEXT ------------------------------------------------

    glVertexArrayNormalOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLenum -- ^ @type@ of type [NormalPointerType](Graphics-GL-Groups.html#NormalPointerType).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArrayNormalOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLsizei -> GLvdpauSurfaceNV -> m ()
    glVertexArrayNormalOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLvdpauSurfaceNV
    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 -> GLsizei -> GLvdpauSurfaceNV -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn890 FunPtr
      (GLuint
       -> GLuint -> GLuint -> GLsizei -> GLvdpauSurfaceNV -> IO ())
    ptr_glVertexArrayNormalOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLvdpauSurfaceNV
    v5

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

    -- glVertexArrayParameteriAPPLE ------------------------------------------------

    glVertexArrayParameteriAPPLE
      :: MonadIO m
      => GLenum -- ^ @pname@ of type [VertexArrayPNameAPPLE](Graphics-GL-Groups.html#VertexArrayPNameAPPLE).
      -> GLint -- ^ @param@.
      -> m ()
    glVertexArrayParameteriAPPLE :: forall (m :: * -> *). MonadIO m => GLuint -> GLsizei -> m ()
    glVertexArrayParameteriAPPLE GLuint
    v1 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 (GLuint -> GLsizei -> IO ()) -> GLuint -> GLsizei -> IO ()
    dyn58 FunPtr (GLuint -> GLsizei -> IO ())
    ptr_glVertexArrayParameteriAPPLE GLuint
    v1 GLsizei
    v2

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

    -- glVertexArrayRangeAPPLE -----------------------------------------------------

    glVertexArrayRangeAPPLE
      :: MonadIO m
      => GLsizei -- ^ @length@.
      -> Ptr a -- ^ @pointer@ pointing to @length@ elements of type @a@.
      -> m ()
    glVertexArrayRangeAPPLE :: forall (m :: * -> *) a. MonadIO m => GLsizei -> Ptr a -> m ()
    glVertexArrayRangeAPPLE GLsizei
    v1 Ptr a
    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 a -> IO ()) -> GLsizei -> Ptr a -> IO ()
    forall a.
    FunPtr (GLsizei -> Ptr a -> IO ()) -> GLsizei -> Ptr a -> IO ()
    dyn271 FunPtr (GLsizei -> Ptr a -> IO ())
    forall a. FunPtr (GLsizei -> Ptr a -> IO ())
    ptr_glVertexArrayRangeAPPLE GLsizei
    v1 Ptr a
    v2

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

    -- glVertexArrayRangeNV --------------------------------------------------------

    glVertexArrayRangeNV
      :: MonadIO m
      => GLsizei -- ^ @length@.
      -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(length)@ elements of type @a@.
      -> m ()
    glVertexArrayRangeNV :: forall (m :: * -> *) a. MonadIO m => GLsizei -> Ptr a -> m ()
    glVertexArrayRangeNV GLsizei
    v1 Ptr a
    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 a -> IO ()) -> GLsizei -> Ptr a -> IO ()
    forall a.
    FunPtr (GLsizei -> Ptr a -> IO ()) -> GLsizei -> Ptr a -> IO ()
    dyn271 FunPtr (GLsizei -> Ptr a -> IO ())
    forall a. FunPtr (GLsizei -> Ptr a -> IO ())
    ptr_glVertexArrayRangeNV GLsizei
    v1 Ptr a
    v2

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

    -- glVertexArraySecondaryColorOffsetEXT ----------------------------------------

    glVertexArraySecondaryColorOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArraySecondaryColorOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> m ()
    glVertexArraySecondaryColorOffsetEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLsizei
    v5 GLvdpauSurfaceNV
    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
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn888 FunPtr
      (GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    ptr_glVertexArraySecondaryColorOffsetEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLsizei
    v5 GLvdpauSurfaceNV
    v6

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

    -- glVertexArrayTexCoordOffsetEXT ----------------------------------------------

    glVertexArrayTexCoordOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArrayTexCoordOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> m ()
    glVertexArrayTexCoordOffsetEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLsizei
    v5 GLvdpauSurfaceNV
    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
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn888 FunPtr
      (GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    ptr_glVertexArrayTexCoordOffsetEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLsizei
    v5 GLvdpauSurfaceNV
    v6

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

    -- glVertexArrayVertexAttribBindingEXT -----------------------------------------

    glVertexArrayVertexAttribBindingEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @attribindex@.
      -> GLuint -- ^ @bindingindex@.
      -> m ()
    glVertexArrayVertexAttribBindingEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glVertexArrayVertexAttribBindingEXT GLuint
    v1 GLuint
    v2 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 -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> IO ()
    dyn109 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glVertexArrayVertexAttribBindingEXT GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glVertexArrayVertexAttribDivisorEXT -----------------------------------------

    glVertexArrayVertexAttribDivisorEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @index@.
      -> GLuint -- ^ @divisor@.
      -> m ()
    glVertexArrayVertexAttribDivisorEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glVertexArrayVertexAttribDivisorEXT GLuint
    v1 GLuint
    v2 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 -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> IO ()
    dyn109 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glVertexArrayVertexAttribDivisorEXT GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glVertexArrayVertexAttribFormatEXT ------------------------------------------

    glVertexArrayVertexAttribFormatEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @attribindex@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [VertexAttribType](Graphics-GL-Groups.html#VertexAttribType).
      -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> GLuint -- ^ @relativeoffset@.
      -> m ()
    glVertexArrayVertexAttribFormatEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint -> GLsizei -> GLuint -> GLboolean -> GLuint -> m ()
    glVertexArrayVertexAttribFormatEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLboolean
    v5 GLuint
    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 -> GLsizei -> GLuint -> GLboolean -> GLuint -> IO ())
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLboolean
    -> GLuint
    -> IO ()
    dyn885 FunPtr
      (GLuint
       -> GLuint -> GLsizei -> GLuint -> GLboolean -> GLuint -> IO ())
    ptr_glVertexArrayVertexAttribFormatEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLboolean
    v5 GLuint
    v6

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

    -- glVertexArrayVertexAttribIFormatEXT -----------------------------------------

    glVertexArrayVertexAttribIFormatEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @attribindex@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [VertexAttribIType](Graphics-GL-Groups.html#VertexAttribIType).
      -> GLuint -- ^ @relativeoffset@.
      -> m ()
    glVertexArrayVertexAttribIFormatEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> m ()
    glVertexArrayVertexAttribIFormatEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    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 -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ()
    dyn886 FunPtr (GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ())
    ptr_glVertexArrayVertexAttribIFormatEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    v5

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

    -- glVertexArrayVertexAttribIOffsetEXT -----------------------------------------

    glVertexArrayVertexAttribIOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLuint -- ^ @index@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [VertexAttribType](Graphics-GL-Groups.html#VertexAttribType).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArrayVertexAttribIOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> m ()
    glVertexArrayVertexAttribIOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 GLsizei
    v6 GLvdpauSurfaceNV
    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
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn892 FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    ptr_glVertexArrayVertexAttribIOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 GLsizei
    v6 GLvdpauSurfaceNV
    v7

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

    -- glVertexArrayVertexAttribLFormatEXT -----------------------------------------

    glVertexArrayVertexAttribLFormatEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @attribindex@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [VertexAttribLType](Graphics-GL-Groups.html#VertexAttribLType).
      -> GLuint -- ^ @relativeoffset@.
      -> m ()
    glVertexArrayVertexAttribLFormatEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> m ()
    glVertexArrayVertexAttribLFormatEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    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 -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ()
    dyn886 FunPtr (GLuint -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ())
    ptr_glVertexArrayVertexAttribLFormatEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 GLuint
    v4 GLuint
    v5

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

    -- glVertexArrayVertexAttribLOffsetEXT -----------------------------------------

    glVertexArrayVertexAttribLOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLuint -- ^ @index@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [VertexAttribLType](Graphics-GL-Groups.html#VertexAttribLType).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@ of type @BufferOffset@.
      -> m ()
    glVertexArrayVertexAttribLOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> m ()
    glVertexArrayVertexAttribLOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 GLsizei
    v6 GLvdpauSurfaceNV
    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
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn892 FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    ptr_glVertexArrayVertexAttribLOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 GLsizei
    v6 GLvdpauSurfaceNV
    v7

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

    -- glVertexArrayVertexAttribOffsetEXT ------------------------------------------

    glVertexArrayVertexAttribOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @buffer@.
      -> GLuint -- ^ @index@.
      -> GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
      -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> GLsizei -- ^ @stride@.
      -> GLintptr -- ^ @offset@.
      -> m ()
    glVertexArrayVertexAttribOffsetEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLboolean
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> m ()
    glVertexArrayVertexAttribOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 GLboolean
    v6 GLsizei
    v7 GLvdpauSurfaceNV
    v8 = 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
       -> GLuint
       -> GLboolean
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> GLboolean
    -> GLsizei
    -> GLvdpauSurfaceNV
    -> IO ()
    dyn893 FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> GLboolean
       -> GLsizei
       -> GLvdpauSurfaceNV
       -> IO ())
    ptr_glVertexArrayVertexAttribOffsetEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 GLboolean
    v6 GLsizei
    v7 GLvdpauSurfaceNV
    v8

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