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

    module Graphics.GL.Functions.F06 (
      glDeleteVertexArraysOES,
      glDeleteVertexShaderEXT,
      glDepthBoundsEXT,
      glDepthBoundsdNV,
      glDepthFunc,
      glDepthMask,
      glDepthRange,
      glDepthRangeArrayfvNV,
      glDepthRangeArrayfvOES,
      glDepthRangeArrayv,
      glDepthRangeIndexed,
      glDepthRangeIndexedfNV,
      glDepthRangeIndexedfOES,
      glDepthRangedNV,
      glDepthRangef,
      glDepthRangefOES,
      glDepthRangex,
      glDepthRangexOES,
      glDetachObjectARB,
      glDetachShader,
      glDetailTexFuncSGIS,
      glDisable,
      glDisableClientState,
      glDisableClientStateIndexedEXT,
      glDisableClientStateiEXT,
      glDisableDriverControlQCOM,
      glDisableIndexedEXT,
      glDisableVariantClientStateEXT,
      glDisableVertexArrayAttrib,
      glDisableVertexArrayAttribEXT,
      glDisableVertexArrayEXT,
      glDisableVertexAttribAPPLE,
      glDisableVertexAttribArray,
      glDisableVertexAttribArrayARB,
      glDisablei,
      glDisableiEXT,
      glDisableiNV,
      glDisableiOES,
      glDiscardFramebufferEXT,
      glDispatchCompute,
      glDispatchComputeGroupSizeARB,
      glDispatchComputeIndirect,
      glDrawArrays,
      glDrawArraysEXT,
      glDrawArraysIndirect,
      glDrawArraysInstanced,
      glDrawArraysInstancedANGLE,
      glDrawArraysInstancedARB,
      glDrawArraysInstancedBaseInstance,
      glDrawArraysInstancedBaseInstanceEXT,
      glDrawArraysInstancedEXT,
      glDrawArraysInstancedNV,
      glDrawBuffer,
      glDrawBuffers,
      glDrawBuffersARB,
      glDrawBuffersATI,
      glDrawBuffersEXT,
      glDrawBuffersIndexedEXT,
      glDrawBuffersNV,
      glDrawCommandsAddressNV,
      glDrawCommandsNV,
      glDrawCommandsStatesAddressNV,
      glDrawCommandsStatesNV,
      glDrawElementArrayAPPLE,
      glDrawElementArrayATI,
      glDrawElements,
      glDrawElementsBaseVertex,
      glDrawElementsBaseVertexEXT,
      glDrawElementsBaseVertexOES,
      glDrawElementsIndirect,
      glDrawElementsInstanced,
      glDrawElementsInstancedANGLE,
      glDrawElementsInstancedARB,
      glDrawElementsInstancedBaseInstance,
      glDrawElementsInstancedBaseInstanceEXT,
      glDrawElementsInstancedBaseVertex,
      glDrawElementsInstancedBaseVertexBaseInstance,
      glDrawElementsInstancedBaseVertexBaseInstanceEXT,
      glDrawElementsInstancedBaseVertexEXT,
      glDrawElementsInstancedBaseVertexOES,
      glDrawElementsInstancedEXT,
      glDrawElementsInstancedNV,
      glDrawMeshArraysSUN,
      glDrawMeshTasksIndirectNV,
      glDrawMeshTasksNV,
      glDrawPixels,
      glDrawRangeElementArrayAPPLE,
      glDrawRangeElementArrayATI,
      glDrawRangeElements,
      glDrawRangeElementsBaseVertex,
      glDrawRangeElementsBaseVertexEXT,
      glDrawRangeElementsBaseVertexOES,
      glDrawRangeElementsEXT,
      glDrawTexfOES,
      glDrawTexfvOES,
      glDrawTexiOES,
      glDrawTexivOES,
      glDrawTexsOES,
      glDrawTexsvOES,
      glDrawTextureNV
    ) where

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

    -- glDeleteVertexArraysOES -----------------------------------------------------

    -- | This command is an alias for 'glDeleteVertexArrays'.
    glDeleteVertexArraysOES
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
      -> m ()
    glDeleteVertexArraysOES :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glDeleteVertexArraysOES GLsizei
    v1 Ptr GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glDeleteVertexArraysOES GLsizei
    v1 Ptr GLuint
    v2

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

    -- glDeleteVertexShaderEXT -----------------------------------------------------

    glDeleteVertexShaderEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> m ()
    glDeleteVertexShaderEXT :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glDeleteVertexShaderEXT 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_glDeleteVertexShaderEXT GLuint
    v1

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

    -- glDepthBoundsEXT ------------------------------------------------------------

    glDepthBoundsEXT
      :: MonadIO m
      => GLclampd -- ^ @zmin@ of type @ClampedFloat64@.
      -> GLclampd -- ^ @zmax@ of type @ClampedFloat64@.
      -> m ()
    glDepthBoundsEXT :: forall (m :: * -> *). MonadIO m => GLclampd -> GLclampd -> m ()
    glDepthBoundsEXT GLclampd
    v1 GLclampd
    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 (GLclampd -> GLclampd -> IO ())
    -> GLclampd -> GLclampd -> IO ()
    dyn224 FunPtr (GLclampd -> GLclampd -> IO ())
    ptr_glDepthBoundsEXT GLclampd
    v1 GLclampd
    v2

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

    -- glDepthBoundsdNV ------------------------------------------------------------

    glDepthBoundsdNV
      :: MonadIO m
      => GLdouble -- ^ @zmin@.
      -> GLdouble -- ^ @zmax@.
      -> m ()
    glDepthBoundsdNV :: forall (m :: * -> *). MonadIO m => GLclampd -> GLclampd -> m ()
    glDepthBoundsdNV GLclampd
    v1 GLclampd
    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 (GLclampd -> GLclampd -> IO ())
    -> GLclampd -> GLclampd -> IO ()
    dyn225 FunPtr (GLclampd -> GLclampd -> IO ())
    ptr_glDepthBoundsdNV GLclampd
    v1 GLclampd
    v2

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

    -- glDepthFunc -----------------------------------------------------------------

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

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

    -- glDepthMask -----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDepthMask.xhtml OpenGL 4.x>.
    glDepthMask
      :: MonadIO m
      => GLboolean -- ^ @flag@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m ()
    glDepthMask :: forall (m :: * -> *). MonadIO m => GLboolean -> m ()
    glDepthMask GLboolean
    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 (GLboolean -> IO ()) -> GLboolean -> IO ()
    dyn198 FunPtr (GLboolean -> IO ())
    ptr_glDepthMask GLboolean
    v1

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

    -- glDepthRange ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDepthRange.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDepthRange.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDepthRange.xhtml OpenGL 4.x>.
    glDepthRange
      :: MonadIO m
      => GLdouble -- ^ @n@.
      -> GLdouble -- ^ @f@.
      -> m ()
    glDepthRange :: forall (m :: * -> *). MonadIO m => GLclampd -> GLclampd -> m ()
    glDepthRange GLclampd
    v1 GLclampd
    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 (GLclampd -> GLclampd -> IO ())
    -> GLclampd -> GLclampd -> IO ()
    dyn225 FunPtr (GLclampd -> GLclampd -> IO ())
    ptr_glDepthRange GLclampd
    v1 GLclampd
    v2

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

    -- glDepthRangeArrayfvNV -------------------------------------------------------

    glDepthRangeArrayfvNV
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @v@.
      -> m ()
    glDepthRangeArrayfvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLfloat -> m ()
    glDepthRangeArrayfvNV GLuint
    v1 GLsizei
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
    dyn226 FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glDepthRangeArrayfvNV GLuint
    v1 GLsizei
    v2 Ptr GLfloat
    v3

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

    -- glDepthRangeArrayfvOES ------------------------------------------------------

    glDepthRangeArrayfvOES
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @v@.
      -> m ()
    glDepthRangeArrayfvOES :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLfloat -> m ()
    glDepthRangeArrayfvOES GLuint
    v1 GLsizei
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
    dyn226 FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glDepthRangeArrayfvOES GLuint
    v1 GLsizei
    v2 Ptr GLfloat
    v3

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

    -- glDepthRangeArrayv ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDepthRangeArray.xhtml OpenGL 4.x>.
    glDepthRangeArrayv
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLdouble@.
      -> m ()
    glDepthRangeArrayv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLclampd -> m ()
    glDepthRangeArrayv GLuint
    v1 GLsizei
    v2 Ptr GLclampd
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> Ptr GLclampd -> IO ())
    -> GLuint -> GLsizei -> Ptr GLclampd -> IO ()
    dyn227 FunPtr (GLuint -> GLsizei -> Ptr GLclampd -> IO ())
    ptr_glDepthRangeArrayv GLuint
    v1 GLsizei
    v2 Ptr GLclampd
    v3

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

    -- glDepthRangeIndexed ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDepthRangeIndexed.xhtml OpenGL 4.x>.
    glDepthRangeIndexed
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLdouble -- ^ @n@.
      -> GLdouble -- ^ @f@.
      -> m ()
    glDepthRangeIndexed :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLclampd -> GLclampd -> m ()
    glDepthRangeIndexed GLuint
    v1 GLclampd
    v2 GLclampd
    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 -> GLclampd -> GLclampd -> IO ())
    -> GLuint -> GLclampd -> GLclampd -> IO ()
    dyn228 FunPtr (GLuint -> GLclampd -> GLclampd -> IO ())
    ptr_glDepthRangeIndexed GLuint
    v1 GLclampd
    v2 GLclampd
    v3

    {-# NOINLINE ptr_glDepthRangeIndexed #-}
    ptr_glDepthRangeIndexed :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
    ptr_glDepthRangeIndexed :: FunPtr (GLuint -> GLclampd -> GLclampd -> IO ())
    ptr_glDepthRangeIndexed = IO (FunPtr (GLuint -> GLclampd -> GLclampd -> IO ()))
    -> FunPtr (GLuint -> GLclampd -> GLclampd -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLuint -> GLclampd -> GLclampd -> IO ()))
     -> FunPtr (GLuint -> GLclampd -> GLclampd -> IO ()))
    -> IO (FunPtr (GLuint -> GLclampd -> GLclampd -> IO ()))
    -> FunPtr (GLuint -> GLclampd -> GLclampd -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLuint -> GLclampd -> GLclampd -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glDepthRangeIndexed"

    -- glDepthRangeIndexedfNV ------------------------------------------------------

    glDepthRangeIndexedfNV
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLfloat -- ^ @n@.
      -> GLfloat -- ^ @f@.
      -> m ()
    glDepthRangeIndexedfNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLfloat -> GLfloat -> m ()
    glDepthRangeIndexedfNV GLuint
    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 (GLuint -> GLfloat -> GLfloat -> IO ())
    -> GLuint -> GLfloat -> GLfloat -> IO ()
    dyn229 FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
    ptr_glDepthRangeIndexedfNV GLuint
    v1 GLfloat
    v2 GLfloat
    v3

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

    -- glDepthRangeIndexedfOES -----------------------------------------------------

    glDepthRangeIndexedfOES
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLfloat -- ^ @n@.
      -> GLfloat -- ^ @f@.
      -> m ()
    glDepthRangeIndexedfOES :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLfloat -> GLfloat -> m ()
    glDepthRangeIndexedfOES GLuint
    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 (GLuint -> GLfloat -> GLfloat -> IO ())
    -> GLuint -> GLfloat -> GLfloat -> IO ()
    dyn229 FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
    ptr_glDepthRangeIndexedfOES GLuint
    v1 GLfloat
    v2 GLfloat
    v3

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

    -- glDepthRangedNV -------------------------------------------------------------

    glDepthRangedNV
      :: MonadIO m
      => GLdouble -- ^ @zNear@.
      -> GLdouble -- ^ @zFar@.
      -> m ()
    glDepthRangedNV :: forall (m :: * -> *). MonadIO m => GLclampd -> GLclampd -> m ()
    glDepthRangedNV GLclampd
    v1 GLclampd
    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 (GLclampd -> GLclampd -> IO ())
    -> GLclampd -> GLclampd -> IO ()
    dyn225 FunPtr (GLclampd -> GLclampd -> IO ())
    ptr_glDepthRangedNV GLclampd
    v1 GLclampd
    v2

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

    -- glDepthRangef ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDepthRange.xhtml OpenGL 4.x>.
    glDepthRangef
      :: MonadIO m
      => GLfloat -- ^ @n@.
      -> GLfloat -- ^ @f@.
      -> m ()
    glDepthRangef :: forall (m :: * -> *). MonadIO m => GLfloat -> GLfloat -> m ()
    glDepthRangef 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_glDepthRangef GLfloat
    v1 GLfloat
    v2

    {-# NOINLINE ptr_glDepthRangef #-}
    ptr_glDepthRangef :: FunPtr (GLfloat -> GLfloat -> IO ())
    ptr_glDepthRangef :: FunPtr (GLfloat -> GLfloat -> IO ())
    ptr_glDepthRangef = 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
    "glDepthRangef"

    -- glDepthRangefOES ------------------------------------------------------------

    -- | This command is an alias for 'glDepthRangef'.
    glDepthRangefOES
      :: MonadIO m
      => GLclampf -- ^ @n@ of type @ClampedFloat32@.
      -> GLclampf -- ^ @f@ of type @ClampedFloat32@.
      -> m ()
    glDepthRangefOES :: forall (m :: * -> *). MonadIO m => GLfloat -> GLfloat -> m ()
    glDepthRangefOES 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 ()
    dyn231 FunPtr (GLfloat -> GLfloat -> IO ())
    ptr_glDepthRangefOES GLfloat
    v1 GLfloat
    v2

    {-# NOINLINE ptr_glDepthRangefOES #-}
    ptr_glDepthRangefOES :: FunPtr (GLclampf -> GLclampf -> IO ())
    ptr_glDepthRangefOES :: FunPtr (GLfloat -> GLfloat -> IO ())
    ptr_glDepthRangefOES = 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
    "glDepthRangefOES"

    -- glDepthRangex ---------------------------------------------------------------

    glDepthRangex
      :: MonadIO m
      => GLfixed -- ^ @n@.
      -> GLfixed -- ^ @f@.
      -> m ()
    glDepthRangex :: forall (m :: * -> *). MonadIO m => GLfixed -> GLfixed -> m ()
    glDepthRangex 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_glDepthRangex GLfixed
    v1 GLfixed
    v2

    {-# NOINLINE ptr_glDepthRangex #-}
    ptr_glDepthRangex :: FunPtr (GLfixed -> GLfixed -> IO ())
    ptr_glDepthRangex :: FunPtr (GLfixed -> GLfixed -> IO ())
    ptr_glDepthRangex = 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
    "glDepthRangex"

    -- glDepthRangexOES ------------------------------------------------------------

    glDepthRangexOES
      :: MonadIO m
      => GLfixed -- ^ @n@ of type @ClampedFixed@.
      -> GLfixed -- ^ @f@ of type @ClampedFixed@.
      -> m ()
    glDepthRangexOES :: forall (m :: * -> *). MonadIO m => GLfixed -> GLfixed -> m ()
    glDepthRangexOES 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_glDepthRangexOES GLfixed
    v1 GLfixed
    v2

    {-# NOINLINE ptr_glDepthRangexOES #-}
    ptr_glDepthRangexOES :: FunPtr (GLfixed -> GLfixed -> IO ())
    ptr_glDepthRangexOES :: FunPtr (GLfixed -> GLfixed -> IO ())
    ptr_glDepthRangexOES = 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
    "glDepthRangexOES"

    -- glDetachObjectARB -----------------------------------------------------------

    -- | This command is an alias for 'glDetachShader'.
    glDetachObjectARB
      :: MonadIO m
      => GLhandleARB -- ^ @containerObj@ of type @handleARB@.
      -> GLhandleARB -- ^ @attachedObj@ of type @handleARB@.
      -> m ()
    glDetachObjectARB :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDetachObjectARB 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 ()
    dyn17 FunPtr (GLuint -> GLuint -> IO ())
    ptr_glDetachObjectARB GLuint
    v1 GLuint
    v2

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

    -- glDetachShader --------------------------------------------------------------

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

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

    -- glDetailTexFuncSGIS ---------------------------------------------------------

    glDetailTexFuncSGIS
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLsizei -- ^ @n@.
      -> Ptr GLfloat -- ^ @points@ pointing to @n*2@ elements of type @GLfloat@.
      -> m ()
    glDetailTexFuncSGIS :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLfloat -> m ()
    glDetailTexFuncSGIS GLuint
    v1 GLsizei
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
    dyn233 FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glDetailTexFuncSGIS GLuint
    v1 GLsizei
    v2 Ptr GLfloat
    v3

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

    -- glDisable -------------------------------------------------------------------

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

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

    -- glDisableClientState --------------------------------------------------------

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

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

    -- glDisableClientStateIndexedEXT ----------------------------------------------

    glDisableClientStateIndexedEXT
      :: MonadIO m
      => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> GLuint -- ^ @index@.
      -> m ()
    glDisableClientStateIndexedEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDisableClientStateIndexedEXT 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_glDisableClientStateIndexedEXT GLuint
    v1 GLuint
    v2

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

    -- glDisableClientStateiEXT ----------------------------------------------------

    glDisableClientStateiEXT
      :: MonadIO m
      => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> GLuint -- ^ @index@.
      -> m ()
    glDisableClientStateiEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDisableClientStateiEXT 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_glDisableClientStateiEXT GLuint
    v1 GLuint
    v2

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

    -- glDisableDriverControlQCOM --------------------------------------------------

    glDisableDriverControlQCOM
      :: MonadIO m
      => GLuint -- ^ @driverControl@.
      -> m ()
    glDisableDriverControlQCOM :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glDisableDriverControlQCOM 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_glDisableDriverControlQCOM GLuint
    v1

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

    -- glDisableIndexedEXT ---------------------------------------------------------

    -- | This command is an alias for 'glDisablei'.
    glDisableIndexedEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> GLuint -- ^ @index@.
      -> m ()
    glDisableIndexedEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDisableIndexedEXT 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_glDisableIndexedEXT GLuint
    v1 GLuint
    v2

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

    -- glDisableVariantClientStateEXT ----------------------------------------------

    glDisableVariantClientStateEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> m ()
    glDisableVariantClientStateEXT :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glDisableVariantClientStateEXT 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_glDisableVariantClientStateEXT GLuint
    v1

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

    -- glDisableVertexArrayAttrib --------------------------------------------------

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

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

    -- glDisableVertexArrayAttribEXT -----------------------------------------------

    glDisableVertexArrayAttribEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @index@.
      -> m ()
    glDisableVertexArrayAttribEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDisableVertexArrayAttribEXT 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_glDisableVertexArrayAttribEXT GLuint
    v1 GLuint
    v2

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

    -- glDisableVertexArrayEXT -----------------------------------------------------

    glDisableVertexArrayEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> m ()
    glDisableVertexArrayEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDisableVertexArrayEXT GLuint
    v1 GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> IO ()
    dyn18 FunPtr (GLuint -> GLuint -> IO ())
    ptr_glDisableVertexArrayEXT GLuint
    v1 GLuint
    v2

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

    -- glDisableVertexAttribAPPLE --------------------------------------------------

    glDisableVertexAttribAPPLE
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@.
      -> m ()
    glDisableVertexAttribAPPLE :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDisableVertexAttribAPPLE GLuint
    v1 GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> IO ()
    dyn18 FunPtr (GLuint -> GLuint -> IO ())
    ptr_glDisableVertexAttribAPPLE GLuint
    v1 GLuint
    v2

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

    -- glDisableVertexAttribArray --------------------------------------------------

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

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

    -- glDisableVertexAttribArrayARB -----------------------------------------------

    -- | This command is an alias for 'glDisableVertexAttribArray'.
    glDisableVertexAttribArrayARB
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> m ()
    glDisableVertexAttribArrayARB :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glDisableVertexAttribArrayARB 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_glDisableVertexAttribArrayARB GLuint
    v1

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

    -- glDisablei ------------------------------------------------------------------

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

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

    -- glDisableiEXT ---------------------------------------------------------------

    -- | This command is an alias for 'glDisablei'.
    glDisableiEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> GLuint -- ^ @index@.
      -> m ()
    glDisableiEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDisableiEXT 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_glDisableiEXT GLuint
    v1 GLuint
    v2

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

    -- glDisableiNV ----------------------------------------------------------------

    -- | This command is an alias for 'glDisablei'.
    glDisableiNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> GLuint -- ^ @index@.
      -> m ()
    glDisableiNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDisableiNV 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_glDisableiNV GLuint
    v1 GLuint
    v2

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

    -- glDisableiOES ---------------------------------------------------------------

    -- | This command is an alias for 'glDisablei'.
    glDisableiOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
      -> GLuint -- ^ @index@.
      -> m ()
    glDisableiOES :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDisableiOES 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_glDisableiOES GLuint
    v1 GLuint
    v2

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

    -- glDiscardFramebufferEXT -----------------------------------------------------

    glDiscardFramebufferEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
      -> GLsizei -- ^ @numAttachments@.
      -> Ptr GLenum -- ^ @attachments@ pointing to @numAttachments@ elements of type [InvalidateFramebufferAttachment](Graphics-GL-Groups.html#InvalidateFramebufferAttachment).
      -> m ()
    glDiscardFramebufferEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLuint -> m ()
    glDiscardFramebufferEXT GLuint
    v1 GLsizei
    v2 Ptr GLuint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
    dyn234 FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glDiscardFramebufferEXT GLuint
    v1 GLsizei
    v2 Ptr GLuint
    v3

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

    -- glDispatchCompute -----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDispatchCompute.xhtml OpenGL 4.x>.
    glDispatchCompute
      :: MonadIO m
      => GLuint -- ^ @num_groups_x@.
      -> GLuint -- ^ @num_groups_y@.
      -> GLuint -- ^ @num_groups_z@.
      -> m ()
    glDispatchCompute :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glDispatchCompute 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_glDispatchCompute GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glDispatchComputeGroupSizeARB -----------------------------------------------

    glDispatchComputeGroupSizeARB
      :: MonadIO m
      => GLuint -- ^ @num_groups_x@.
      -> GLuint -- ^ @num_groups_y@.
      -> GLuint -- ^ @num_groups_z@.
      -> GLuint -- ^ @group_size_x@.
      -> GLuint -- ^ @group_size_y@.
      -> GLuint -- ^ @group_size_z@.
      -> m ()
    glDispatchComputeGroupSizeARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
    glDispatchComputeGroupSizeARB GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    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 -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLuint
    -> IO ()
    dyn235 FunPtr
      (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glDispatchComputeGroupSizeARB GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5 GLuint
    v6

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

    -- glDispatchComputeIndirect ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDispatchComputeIndirect.xhtml OpenGL 4.x>.
    glDispatchComputeIndirect
      :: MonadIO m
      => GLintptr -- ^ @indirect@ of type @BufferOffset@.
      -> m ()
    glDispatchComputeIndirect :: forall (m :: * -> *). MonadIO m => GLintptr -> m ()
    glDispatchComputeIndirect GLintptr
    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 (GLintptr -> IO ()) -> GLintptr -> IO ()
    dyn236 FunPtr (GLintptr -> IO ())
    ptr_glDispatchComputeIndirect GLintptr
    v1

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

    -- glDrawArrays ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawArrays.xhtml OpenGL 4.x>.
    glDrawArrays
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> m ()
    glDrawArrays :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> m ()
    glDrawArrays GLuint
    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 (GLuint -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> IO ()
    dyn237 FunPtr (GLuint -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawArrays GLuint
    v1 GLsizei
    v2 GLsizei
    v3

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

    -- glDrawArraysEXT -------------------------------------------------------------

    -- | This command is an alias for 'glDrawArrays'.
    glDrawArraysEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> m ()
    glDrawArraysEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> m ()
    glDrawArraysEXT GLuint
    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 (GLuint -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> IO ()
    dyn237 FunPtr (GLuint -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawArraysEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3

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

    -- glDrawArraysIndirect --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawArraysIndirect.xhtml OpenGL 4.x>.
    glDrawArraysIndirect
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> Ptr a -- ^ @indirect@.
      -> m ()
    glDrawArraysIndirect :: forall (m :: * -> *) a. MonadIO m => GLuint -> Ptr a -> m ()
    glDrawArraysIndirect GLuint
    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 (GLuint -> Ptr a -> IO ()) -> GLuint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> Ptr a -> IO ()) -> GLuint -> Ptr a -> IO ()
    dyn238 FunPtr (GLuint -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> Ptr a -> IO ())
    ptr_glDrawArraysIndirect GLuint
    v1 Ptr a
    v2

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

    -- glDrawArraysInstanced -------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArraysInstanced.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawArraysInstanced.xhtml OpenGL 4.x>.
    glDrawArraysInstanced
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> GLsizei -- ^ @instancecount@.
      -> m ()
    glDrawArraysInstanced :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> m ()
    glDrawArraysInstanced GLuint
    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 (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn239 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawArraysInstanced GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4

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

    -- glDrawArraysInstancedANGLE --------------------------------------------------

    -- | This command is an alias for 'glDrawArraysInstanced'.
    glDrawArraysInstancedANGLE
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> GLsizei -- ^ @primcount@.
      -> m ()
    glDrawArraysInstancedANGLE :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> m ()
    glDrawArraysInstancedANGLE GLuint
    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 (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn239 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawArraysInstancedANGLE GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4

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

    -- glDrawArraysInstancedARB ----------------------------------------------------

    -- | This command is an alias for 'glDrawArraysInstanced'.
    glDrawArraysInstancedARB
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> GLsizei -- ^ @primcount@.
      -> m ()
    glDrawArraysInstancedARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> m ()
    glDrawArraysInstancedARB GLuint
    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 (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn239 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawArraysInstancedARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4

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

    -- glDrawArraysInstancedBaseInstance -------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawArraysInstancedBaseInstance.xhtml OpenGL 4.x>.
    glDrawArraysInstancedBaseInstance
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> GLsizei -- ^ @instancecount@.
      -> GLuint -- ^ @baseinstance@.
      -> m ()
    glDrawArraysInstancedBaseInstance :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> GLuint -> m ()
    glDrawArraysInstancedBaseInstance GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    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 -> GLsizei -> GLsizei -> GLsizei -> GLuint -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> GLuint -> IO ()
    dyn240 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> GLuint -> IO ())
    ptr_glDrawArraysInstancedBaseInstance GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLuint
    v5

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

    -- glDrawArraysInstancedBaseInstanceEXT ----------------------------------------

    -- | This command is an alias for 'glDrawArraysInstancedBaseInstance'.
    glDrawArraysInstancedBaseInstanceEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> GLsizei -- ^ @instancecount@.
      -> GLuint -- ^ @baseinstance@.
      -> m ()
    glDrawArraysInstancedBaseInstanceEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> GLuint -> m ()
    glDrawArraysInstancedBaseInstanceEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    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 -> GLsizei -> GLsizei -> GLsizei -> GLuint -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> GLuint -> IO ()
    dyn240 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> GLuint -> IO ())
    ptr_glDrawArraysInstancedBaseInstanceEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLuint
    v5

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

    -- glDrawArraysInstancedEXT ----------------------------------------------------

    -- | This command is an alias for 'glDrawArraysInstanced'.
    glDrawArraysInstancedEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @start@.
      -> GLsizei -- ^ @count@.
      -> GLsizei -- ^ @primcount@.
      -> m ()
    glDrawArraysInstancedEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> m ()
    glDrawArraysInstancedEXT GLuint
    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 (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn239 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawArraysInstancedEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4

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

    -- glDrawArraysInstancedNV -----------------------------------------------------

    -- | This command is an alias for 'glDrawArraysInstanced'.
    glDrawArraysInstancedNV
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> GLsizei -- ^ @primcount@.
      -> m ()
    glDrawArraysInstancedNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> m ()
    glDrawArraysInstancedNV GLuint
    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 (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn239 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawArraysInstancedNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4

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

    -- glDrawBuffer ----------------------------------------------------------------

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

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

    -- glDrawBuffers ---------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffers.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawBuffers.xhtml OpenGL 4.x>.
    glDrawBuffers
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type [DrawBufferMode](Graphics-GL-Groups.html#DrawBufferMode).
      -> m ()
    glDrawBuffers :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glDrawBuffers GLsizei
    v1 Ptr GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn241 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glDrawBuffers GLsizei
    v1 Ptr GLuint
    v2

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

    -- glDrawBuffersARB ------------------------------------------------------------

    -- | This command is an alias for 'glDrawBuffers'.
    glDrawBuffersARB
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type [DrawBufferMode](Graphics-GL-Groups.html#DrawBufferMode).
      -> m ()
    glDrawBuffersARB :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glDrawBuffersARB GLsizei
    v1 Ptr GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn241 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glDrawBuffersARB GLsizei
    v1 Ptr GLuint
    v2

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

    -- glDrawBuffersATI ------------------------------------------------------------

    -- | This command is an alias for 'glDrawBuffers'.
    glDrawBuffersATI
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type [DrawBufferMode](Graphics-GL-Groups.html#DrawBufferMode).
      -> m ()
    glDrawBuffersATI :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glDrawBuffersATI GLsizei
    v1 Ptr GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn241 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glDrawBuffersATI GLsizei
    v1 Ptr GLuint
    v2

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

    -- glDrawBuffersEXT ------------------------------------------------------------

    -- | This command is an alias for 'glDrawBuffers'.
    glDrawBuffersEXT
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type @GLenum@.
      -> m ()
    glDrawBuffersEXT :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glDrawBuffersEXT GLsizei
    v1 Ptr GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn241 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glDrawBuffersEXT GLsizei
    v1 Ptr GLuint
    v2

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

    -- glDrawBuffersIndexedEXT -----------------------------------------------------

    glDrawBuffersIndexedEXT
      :: MonadIO m
      => GLint -- ^ @n@.
      -> Ptr GLenum -- ^ @location@ pointing to @n@ elements of type @GLenum@.
      -> Ptr GLint -- ^ @indices@ pointing to @n@ elements of type @GLint@.
      -> m ()
    glDrawBuffersIndexedEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei -> Ptr GLuint -> Ptr GLsizei -> m ()
    glDrawBuffersIndexedEXT GLsizei
    v1 Ptr GLuint
    v2 Ptr GLsizei
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ())
    -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ()
    dyn242 FunPtr (GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ())
    ptr_glDrawBuffersIndexedEXT GLsizei
    v1 Ptr GLuint
    v2 Ptr GLsizei
    v3

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

    -- glDrawBuffersNV -------------------------------------------------------------

    glDrawBuffersNV
      :: MonadIO m
      => GLsizei -- ^ @n@.
      -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type @GLenum@.
      -> m ()
    glDrawBuffersNV :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
    glDrawBuffersNV GLsizei
    v1 Ptr GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLsizei -> Ptr GLuint -> IO ())
    -> GLsizei -> Ptr GLuint -> IO ()
    dyn241 FunPtr (GLsizei -> Ptr GLuint -> IO ())
    ptr_glDrawBuffersNV GLsizei
    v1 Ptr GLuint
    v2

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

    -- glDrawCommandsAddressNV -----------------------------------------------------

    glDrawCommandsAddressNV
      :: MonadIO m
      => GLenum -- ^ @primitiveMode@.
      -> Ptr GLuint64 -- ^ @indirects@.
      -> Ptr GLsizei -- ^ @sizes@.
      -> GLuint -- ^ @count@.
      -> m ()
    glDrawCommandsAddressNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
    glDrawCommandsAddressNV GLuint
    v1 Ptr GLuint64
    v2 Ptr GLsizei
    v3 GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ())
    -> GLuint -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()
    dyn243 FunPtr (GLuint -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ())
    ptr_glDrawCommandsAddressNV GLuint
    v1 Ptr GLuint64
    v2 Ptr GLsizei
    v3 GLuint
    v4

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

    -- glDrawCommandsNV ------------------------------------------------------------

    glDrawCommandsNV
      :: MonadIO m
      => GLenum -- ^ @primitiveMode@.
      -> GLuint -- ^ @buffer@.
      -> Ptr GLintptr -- ^ @indirects@.
      -> Ptr GLsizei -- ^ @sizes@.
      -> GLuint -- ^ @count@.
      -> m ()
    glDrawCommandsNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
    glDrawCommandsNV GLuint
    v1 GLuint
    v2 Ptr GLintptr
    v3 Ptr GLsizei
    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 -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ())
    -> GLuint
    -> GLuint
    -> Ptr GLintptr
    -> Ptr GLsizei
    -> GLuint
    -> IO ()
    dyn244 FunPtr
      (GLuint
       -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ())
    ptr_glDrawCommandsNV GLuint
    v1 GLuint
    v2 Ptr GLintptr
    v3 Ptr GLsizei
    v4 GLuint
    v5

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

    -- glDrawCommandsStatesAddressNV -----------------------------------------------

    glDrawCommandsStatesAddressNV
      :: MonadIO m
      => Ptr GLuint64 -- ^ @indirects@.
      -> Ptr GLsizei -- ^ @sizes@.
      -> Ptr GLuint -- ^ @states@.
      -> Ptr GLuint -- ^ @fbos@.
      -> GLuint -- ^ @count@.
      -> m ()
    glDrawCommandsStatesAddressNV :: forall (m :: * -> *).
    MonadIO m =>
    Ptr GLuint64
    -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
    glDrawCommandsStatesAddressNV Ptr GLuint64
    v1 Ptr GLsizei
    v2 Ptr GLuint
    v3 Ptr 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
      (Ptr GLuint64
       -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
    -> Ptr GLuint64
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLuint
    -> GLuint
    -> IO ()
    dyn245 FunPtr
      (Ptr GLuint64
       -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
    ptr_glDrawCommandsStatesAddressNV Ptr GLuint64
    v1 Ptr GLsizei
    v2 Ptr GLuint
    v3 Ptr GLuint
    v4 GLuint
    v5

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

    -- glDrawCommandsStatesNV ------------------------------------------------------

    glDrawCommandsStatesNV
      :: MonadIO m
      => GLuint -- ^ @buffer@.
      -> Ptr GLintptr -- ^ @indirects@.
      -> Ptr GLsizei -- ^ @sizes@.
      -> Ptr GLuint -- ^ @states@.
      -> Ptr GLuint -- ^ @fbos@.
      -> GLuint -- ^ @count@.
      -> m ()
    glDrawCommandsStatesNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> Ptr GLintptr
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLuint
    -> GLuint
    -> m ()
    glDrawCommandsStatesNV GLuint
    v1 Ptr GLintptr
    v2 Ptr GLsizei
    v3 Ptr GLuint
    v4 Ptr GLuint
    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
       -> Ptr GLintptr
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLuint
       -> GLuint
       -> IO ())
    -> GLuint
    -> Ptr GLintptr
    -> Ptr GLsizei
    -> Ptr GLuint
    -> Ptr GLuint
    -> GLuint
    -> IO ()
    dyn246 FunPtr
      (GLuint
       -> Ptr GLintptr
       -> Ptr GLsizei
       -> Ptr GLuint
       -> Ptr GLuint
       -> GLuint
       -> IO ())
    ptr_glDrawCommandsStatesNV GLuint
    v1 Ptr GLintptr
    v2 Ptr GLsizei
    v3 Ptr GLuint
    v4 Ptr GLuint
    v5 GLuint
    v6

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

    -- glDrawElementArrayAPPLE -----------------------------------------------------

    glDrawElementArrayAPPLE
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> m ()
    glDrawElementArrayAPPLE :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> m ()
    glDrawElementArrayAPPLE GLuint
    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 (GLuint -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> IO ()
    dyn237 FunPtr (GLuint -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawElementArrayAPPLE GLuint
    v1 GLsizei
    v2 GLsizei
    v3

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

    -- glDrawElementArrayATI -------------------------------------------------------

    glDrawElementArrayATI
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> m ()
    glDrawElementArrayATI :: forall (m :: * -> *). MonadIO m => GLuint -> GLsizei -> m ()
    glDrawElementArrayATI 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 ()
    dyn247 FunPtr (GLuint -> GLsizei -> IO ())
    ptr_glDrawElementArrayATI GLuint
    v1 GLsizei
    v2

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

    -- glDrawElements --------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawElements.xhtml OpenGL 4.x>.
    glDrawElements
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> m ()
    glDrawElements :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> m ()
    glDrawElements GLuint
    v1 GLsizei
    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 -> GLsizei -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ()
    dyn248 FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    ptr_glDrawElements GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4

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

    -- glDrawElementsBaseVertex ----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsBaseVertex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsBaseVertex.xhtml OpenGL 4.x>.
    glDrawElementsBaseVertex
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLint -- ^ @basevertex@.
      -> m ()
    glDrawElementsBaseVertex :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> m ()
    glDrawElementsBaseVertex GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    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 -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    dyn249 FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    ptr_glDrawElementsBaseVertex GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5

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

    -- glDrawElementsBaseVertexEXT -------------------------------------------------

    -- | This command is an alias for 'glDrawElementsBaseVertex'.
    glDrawElementsBaseVertexEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLint -- ^ @basevertex@.
      -> m ()
    glDrawElementsBaseVertexEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> m ()
    glDrawElementsBaseVertexEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    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 -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    dyn249 FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    ptr_glDrawElementsBaseVertexEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5

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

    -- glDrawElementsBaseVertexOES -------------------------------------------------

    -- | This command is an alias for 'glDrawElementsBaseVertex'.
    glDrawElementsBaseVertexOES
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLint -- ^ @basevertex@.
      -> m ()
    glDrawElementsBaseVertexOES :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> m ()
    glDrawElementsBaseVertexOES GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    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 -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    dyn249 FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    ptr_glDrawElementsBaseVertexOES GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5

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

    -- glDrawElementsIndirect ------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsIndirect.xhtml OpenGL 4.x>.
    glDrawElementsIndirect
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indirect@.
      -> m ()
    glDrawElementsIndirect :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> Ptr a -> m ()
    glDrawElementsIndirect GLuint
    v1 GLuint
    v2 Ptr a
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> Ptr a -> IO ())
    -> GLuint -> GLuint -> Ptr a -> IO ()
    dyn250 FunPtr (GLuint -> GLuint -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> Ptr a -> IO ())
    ptr_glDrawElementsIndirect GLuint
    v1 GLuint
    v2 Ptr a
    v3

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

    -- glDrawElementsInstanced -----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstanced.xhtml OpenGL 4.x>.
    glDrawElementsInstanced
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLsizei -- ^ @instancecount@.
      -> m ()
    glDrawElementsInstanced :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> m ()
    glDrawElementsInstanced GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    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 -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    dyn251 FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    ptr_glDrawElementsInstanced GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5

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

    -- glDrawElementsInstancedANGLE ------------------------------------------------

    -- | This command is an alias for 'glDrawElementsInstanced'.
    glDrawElementsInstancedANGLE
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLsizei -- ^ @primcount@.
      -> m ()
    glDrawElementsInstancedANGLE :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> m ()
    glDrawElementsInstancedANGLE GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    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 -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    dyn251 FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    ptr_glDrawElementsInstancedANGLE GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5

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

    -- glDrawElementsInstancedARB --------------------------------------------------

    -- | This command is an alias for 'glDrawElementsInstanced'.
    glDrawElementsInstancedARB
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLsizei -- ^ @primcount@.
      -> m ()
    glDrawElementsInstancedARB :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> m ()
    glDrawElementsInstancedARB GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    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 -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    dyn251 FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    ptr_glDrawElementsInstancedARB GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5

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

    -- glDrawElementsInstancedBaseInstance -----------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstancedBaseInstance.xhtml OpenGL 4.x>.
    glDrawElementsInstancedBaseInstance
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> Ptr a -- ^ @indices@ pointing to @count@ elements of type @a@.
      -> GLsizei -- ^ @instancecount@.
      -> GLuint -- ^ @baseinstance@.
      -> m ()
    glDrawElementsInstancedBaseInstance :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> m ()
    glDrawElementsInstancedBaseInstance GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    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
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLuint
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLuint
    -> IO ()
    dyn252 FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> IO ())
    ptr_glDrawElementsInstancedBaseInstance GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLuint
    v6

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

    -- glDrawElementsInstancedBaseInstanceEXT --------------------------------------

    -- | This command is an alias for 'glDrawElementsInstancedBaseInstance'.
    glDrawElementsInstancedBaseInstanceEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> Ptr a -- ^ @indices@ pointing to @count@ elements of type @a@.
      -> GLsizei -- ^ @instancecount@.
      -> GLuint -- ^ @baseinstance@.
      -> m ()
    glDrawElementsInstancedBaseInstanceEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> m ()
    glDrawElementsInstancedBaseInstanceEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    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
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLuint
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLuint
    -> IO ()
    dyn252 FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLuint -> IO ())
    ptr_glDrawElementsInstancedBaseInstanceEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLuint
    v6

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

    -- glDrawElementsInstancedBaseVertex -------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstancedBaseVertex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstancedBaseVertex.xhtml OpenGL 4.x>.
    glDrawElementsInstancedBaseVertex
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLsizei -- ^ @instancecount@.
      -> GLint -- ^ @basevertex@.
      -> m ()
    glDrawElementsInstancedBaseVertex :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> m ()
    glDrawElementsInstancedBaseVertex GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    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
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> IO ()
    dyn253 FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawElementsInstancedBaseVertex GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    v6

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

    -- glDrawElementsInstancedBaseVertexBaseInstance -------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml OpenGL 4.x>.
    glDrawElementsInstancedBaseVertexBaseInstance
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @count@ elements of type @a@.
      -> GLsizei -- ^ @instancecount@.
      -> GLint -- ^ @basevertex@.
      -> GLuint -- ^ @baseinstance@.
      -> m ()
    glDrawElementsInstancedBaseVertexBaseInstance :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> GLuint
    -> m ()
    glDrawElementsInstancedBaseVertexBaseInstance GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    v6 GLuint
    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
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> GLsizei
       -> GLuint
       -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> GLuint
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> GLsizei
       -> GLuint
       -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> GLuint
    -> IO ()
    dyn254 FunPtr
      (GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> GLsizei
       -> GLuint
       -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> GLsizei
       -> GLuint
       -> IO ())
    ptr_glDrawElementsInstancedBaseVertexBaseInstance GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    v6 GLuint
    v7

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

    -- glDrawElementsInstancedBaseVertexBaseInstanceEXT ----------------------------

    -- | This command is an alias for 'glDrawElementsInstancedBaseVertexBaseInstance'.
    glDrawElementsInstancedBaseVertexBaseInstanceEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @count@ elements of type @a@.
      -> GLsizei -- ^ @instancecount@.
      -> GLint -- ^ @basevertex@.
      -> GLuint -- ^ @baseinstance@.
      -> m ()
    glDrawElementsInstancedBaseVertexBaseInstanceEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> GLuint
    -> m ()
    glDrawElementsInstancedBaseVertexBaseInstanceEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    v6 GLuint
    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
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> GLsizei
       -> GLuint
       -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> GLuint
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> GLsizei
       -> GLuint
       -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> GLuint
    -> IO ()
    dyn254 FunPtr
      (GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> GLsizei
       -> GLuint
       -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> GLsizei
       -> GLuint
       -> IO ())
    ptr_glDrawElementsInstancedBaseVertexBaseInstanceEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    v6 GLuint
    v7

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

    -- glDrawElementsInstancedBaseVertexEXT ----------------------------------------

    -- | This command is an alias for 'glDrawElementsInstancedBaseVertex'.
    glDrawElementsInstancedBaseVertexEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLsizei -- ^ @instancecount@.
      -> GLint -- ^ @basevertex@.
      -> m ()
    glDrawElementsInstancedBaseVertexEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> m ()
    glDrawElementsInstancedBaseVertexEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    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
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> IO ()
    dyn253 FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawElementsInstancedBaseVertexEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    v6

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

    -- glDrawElementsInstancedBaseVertexOES ----------------------------------------

    -- | This command is an alias for 'glDrawElementsInstancedBaseVertex'.
    glDrawElementsInstancedBaseVertexOES
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLsizei -- ^ @instancecount@.
      -> GLint -- ^ @basevertex@.
      -> m ()
    glDrawElementsInstancedBaseVertexOES :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> m ()
    glDrawElementsInstancedBaseVertexOES GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    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
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> GLsizei
    -> IO ()
    dyn253 FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLsizei -> GLuint -> Ptr a -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawElementsInstancedBaseVertexOES GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5 GLsizei
    v6

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

    -- glDrawElementsInstancedEXT --------------------------------------------------

    -- | This command is an alias for 'glDrawElementsInstanced'.
    glDrawElementsInstancedEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLsizei -- ^ @primcount@.
      -> m ()
    glDrawElementsInstancedEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> m ()
    glDrawElementsInstancedEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    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 -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    dyn251 FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    ptr_glDrawElementsInstancedEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5

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

    -- glDrawElementsInstancedNV ---------------------------------------------------

    -- | This command is an alias for 'glDrawElementsInstanced'.
    glDrawElementsInstancedNV
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLsizei -- ^ @primcount@.
      -> m ()
    glDrawElementsInstancedNV :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> m ()
    glDrawElementsInstancedNV GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    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 -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ()
    dyn251 FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    forall a.
    FunPtr (GLuint -> GLsizei -> GLuint -> Ptr a -> GLsizei -> IO ())
    ptr_glDrawElementsInstancedNV GLuint
    v1 GLsizei
    v2 GLuint
    v3 Ptr a
    v4 GLsizei
    v5

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

    -- glDrawMeshArraysSUN ---------------------------------------------------------

    glDrawMeshArraysSUN
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> GLsizei -- ^ @width@.
      -> m ()
    glDrawMeshArraysSUN :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> m ()
    glDrawMeshArraysSUN GLuint
    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 (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn239 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawMeshArraysSUN GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4

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

    -- glDrawMeshTasksIndirectNV ---------------------------------------------------

    glDrawMeshTasksIndirectNV
      :: MonadIO m
      => GLintptr -- ^ @indirect@.
      -> m ()
    glDrawMeshTasksIndirectNV :: forall (m :: * -> *). MonadIO m => GLintptr -> m ()
    glDrawMeshTasksIndirectNV GLintptr
    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 (GLintptr -> IO ()) -> GLintptr -> IO ()
    dyn236 FunPtr (GLintptr -> IO ())
    ptr_glDrawMeshTasksIndirectNV GLintptr
    v1

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

    -- glDrawMeshTasksNV -----------------------------------------------------------

    glDrawMeshTasksNV
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLuint -- ^ @count@.
      -> m ()
    glDrawMeshTasksNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glDrawMeshTasksNV 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_glDrawMeshTasksNV GLuint
    v1 GLuint
    v2

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

    -- glDrawPixels ----------------------------------------------------------------

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

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

    -- glDrawRangeElementArrayAPPLE ------------------------------------------------

    glDrawRangeElementArrayAPPLE
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLuint -- ^ @start@.
      -> GLuint -- ^ @end@.
      -> GLint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> m ()
    glDrawRangeElementArrayAPPLE :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLsizei -> GLsizei -> m ()
    glDrawRangeElementArrayAPPLE GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    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 -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLsizei -> GLsizei -> IO ()
    dyn256 FunPtr (GLuint -> GLuint -> GLuint -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawRangeElementArrayAPPLE GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLsizei
    v5

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

    -- glDrawRangeElementArrayATI --------------------------------------------------

    glDrawRangeElementArrayATI
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLuint -- ^ @start@.
      -> GLuint -- ^ @end@.
      -> GLsizei -- ^ @count@.
      -> m ()
    glDrawRangeElementArrayATI :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLsizei -> m ()
    glDrawRangeElementArrayATI GLuint
    v1 GLuint
    v2 GLuint
    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 (GLuint -> GLuint -> GLuint -> GLsizei -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLsizei -> IO ()
    dyn257 FunPtr (GLuint -> GLuint -> GLuint -> GLsizei -> IO ())
    ptr_glDrawRangeElementArrayATI GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4

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

    -- glDrawRangeElements ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawRangeElements.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawRangeElements.xhtml OpenGL 4.x>.
    glDrawRangeElements
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLuint -- ^ @start@.
      -> GLuint -- ^ @end@.
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> m ()
    glDrawRangeElements :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> m ()
    glDrawRangeElements GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> IO ()
    forall a.
    FunPtr
      (GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> IO ()
    dyn258 FunPtr
      (GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    forall a.
    FunPtr
      (GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    ptr_glDrawRangeElements GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6

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

    -- glDrawRangeElementsBaseVertex -----------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElementsBaseVertex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawRangeElementsBaseVertex.xhtml OpenGL 4.x>.
    glDrawRangeElementsBaseVertex
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLuint -- ^ @start@.
      -> GLuint -- ^ @end@.
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLint -- ^ @basevertex@.
      -> m ()
    glDrawRangeElementsBaseVertex :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> m ()
    glDrawRangeElementsBaseVertex GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6 GLsizei
    v7 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> IO ()
    dyn259 FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    ptr_glDrawRangeElementsBaseVertex GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6 GLsizei
    v7

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

    -- glDrawRangeElementsBaseVertexEXT --------------------------------------------

    -- | This command is an alias for 'glDrawRangeElementsBaseVertex'.
    glDrawRangeElementsBaseVertexEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLuint -- ^ @start@.
      -> GLuint -- ^ @end@.
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLint -- ^ @basevertex@.
      -> m ()
    glDrawRangeElementsBaseVertexEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> m ()
    glDrawRangeElementsBaseVertexEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6 GLsizei
    v7 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> IO ()
    dyn259 FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    ptr_glDrawRangeElementsBaseVertexEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6 GLsizei
    v7

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

    -- glDrawRangeElementsBaseVertexOES --------------------------------------------

    -- | This command is an alias for 'glDrawRangeElementsBaseVertex'.
    glDrawRangeElementsBaseVertexOES
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLuint -- ^ @start@.
      -> GLuint -- ^ @end@.
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> GLint -- ^ @basevertex@.
      -> m ()
    glDrawRangeElementsBaseVertexOES :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> m ()
    glDrawRangeElementsBaseVertexOES GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6 GLsizei
    v7 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> IO ()
    forall a.
    FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> GLsizei
    -> IO ()
    dyn259 FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    forall a.
    FunPtr
      (GLuint
       -> GLuint
       -> GLuint
       -> GLsizei
       -> GLuint
       -> Ptr a
       -> GLsizei
       -> IO ())
    ptr_glDrawRangeElementsBaseVertexOES GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6 GLsizei
    v7

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

    -- glDrawRangeElementsEXT ------------------------------------------------------

    -- | This command is an alias for 'glDrawRangeElements'.
    glDrawRangeElementsEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
      -> GLuint -- ^ @start@.
      -> GLuint -- ^ @end@.
      -> GLsizei -- ^ @count@.
      -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
      -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
      -> m ()
    glDrawRangeElementsEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> m ()
    glDrawRangeElementsEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> IO ()
    forall a.
    FunPtr
      (GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLsizei
    -> GLuint
    -> Ptr a
    -> IO ()
    dyn258 FunPtr
      (GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    forall a.
    FunPtr
      (GLuint -> GLuint -> GLuint -> GLsizei -> GLuint -> Ptr a -> IO ())
    ptr_glDrawRangeElementsEXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLsizei
    v4 GLuint
    v5 Ptr a
    v6

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

    -- glDrawTexfOES ---------------------------------------------------------------

    -- | The vector equivalent of this command is 'glDrawTexfvOES'.
    glDrawTexfOES
      :: MonadIO m
      => GLfloat -- ^ @x@.
      -> GLfloat -- ^ @y@.
      -> GLfloat -- ^ @z@.
      -> GLfloat -- ^ @width@.
      -> GLfloat -- ^ @height@.
      -> m ()
    glDrawTexfOES :: forall (m :: * -> *).
    MonadIO m =>
    GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
    glDrawTexfOES GLfloat
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn260 FunPtr
      (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glDrawTexfOES GLfloat
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5

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

    -- glDrawTexfvOES --------------------------------------------------------------

    glDrawTexfvOES
      :: MonadIO m
      => Ptr GLfloat -- ^ @coords@ pointing to @5@ elements of type @GLfloat@.
      -> m ()
    glDrawTexfvOES :: forall (m :: * -> *). MonadIO m => Ptr GLfloat -> m ()
    glDrawTexfvOES 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_glDrawTexfvOES Ptr GLfloat
    v1

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

    -- glDrawTexiOES ---------------------------------------------------------------

    -- | The vector equivalent of this command is 'glDrawTexivOES'.
    glDrawTexiOES
      :: MonadIO m
      => GLint -- ^ @x@.
      -> GLint -- ^ @y@.
      -> GLint -- ^ @z@.
      -> GLint -- ^ @width@.
      -> GLint -- ^ @height@.
      -> m ()
    glDrawTexiOES :: forall (m :: * -> *).
    MonadIO m =>
    GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
    glDrawTexiOES GLsizei
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    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
      (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn261 FunPtr
      (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glDrawTexiOES GLsizei
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5

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

    -- glDrawTexivOES --------------------------------------------------------------

    glDrawTexivOES
      :: MonadIO m
      => Ptr GLint -- ^ @coords@ pointing to @5@ elements of type @GLint@.
      -> m ()
    glDrawTexivOES :: forall (m :: * -> *). MonadIO m => Ptr GLsizei -> m ()
    glDrawTexivOES 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_glDrawTexivOES Ptr GLsizei
    v1

    {-# NOINLINE ptr_glDrawTexivOES #-}
    ptr_glDrawTexivOES :: FunPtr (Ptr GLint -> IO ())
    ptr_glDrawTexivOES :: FunPtr (Ptr GLsizei -> IO ())
    ptr_glDrawTexivOES = 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
    "glDrawTexivOES"

    -- glDrawTexsOES ---------------------------------------------------------------

    -- | The vector equivalent of this command is 'glDrawTexsvOES'.
    glDrawTexsOES
      :: MonadIO m
      => GLshort -- ^ @x@.
      -> GLshort -- ^ @y@.
      -> GLshort -- ^ @z@.
      -> GLshort -- ^ @width@.
      -> GLshort -- ^ @height@.
      -> m ()
    glDrawTexsOES :: forall (m :: * -> *).
    MonadIO m =>
    GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
    glDrawTexsOES GLshort
    v1 GLshort
    v2 GLshort
    v3 GLshort
    v4 GLshort
    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
      (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
    -> GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
    dyn262 FunPtr
      (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
    ptr_glDrawTexsOES GLshort
    v1 GLshort
    v2 GLshort
    v3 GLshort
    v4 GLshort
    v5

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

    -- glDrawTexsvOES --------------------------------------------------------------

    glDrawTexsvOES
      :: MonadIO m
      => Ptr GLshort -- ^ @coords@ pointing to @5@ elements of type @GLshort@.
      -> m ()
    glDrawTexsvOES :: forall (m :: * -> *). MonadIO m => Ptr GLshort -> m ()
    glDrawTexsvOES 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_glDrawTexsvOES Ptr GLshort
    v1

    {-# NOINLINE ptr_glDrawTexsvOES #-}
    ptr_glDrawTexsvOES :: FunPtr (Ptr GLshort -> IO ())
    ptr_glDrawTexsvOES :: FunPtr (Ptr GLshort -> IO ())
    ptr_glDrawTexsvOES = 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
    "glDrawTexsvOES"

    -- glDrawTextureNV -------------------------------------------------------------

    glDrawTextureNV
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLuint -- ^ @sampler@.
      -> GLfloat -- ^ @x0@.
      -> GLfloat -- ^ @y0@.
      -> GLfloat -- ^ @x1@.
      -> GLfloat -- ^ @y1@.
      -> GLfloat -- ^ @z@.
      -> GLfloat -- ^ @s0@.
      -> GLfloat -- ^ @t0@.
      -> GLfloat -- ^ @s1@.
      -> GLfloat -- ^ @t1@.
      -> m ()
    glDrawTextureNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> m ()
    glDrawTextureNV GLuint
    v1 GLuint
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    v6 GLfloat
    v7 GLfloat
    v8 GLfloat
    v9 GLfloat
    v10 GLfloat
    v11 = IO () -> m ()
    forall a. IO a -> 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
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> IO ()
    dyn263 FunPtr
      (GLuint
       -> GLuint
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> IO ())
    ptr_glDrawTextureNV GLuint
    v1 GLuint
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    v6 GLfloat
    v7 GLfloat
    v8 GLfloat
    v9 GLfloat
    v10 GLfloat
    v11

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