    {-# OPTIONS_HADDOCK hide #-}
    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.GL.Functions.F24
    -- 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.F24 (
      glScissor,
      glScissorArrayv,
      glScissorArrayvNV,
      glScissorArrayvOES,
      glScissorExclusiveArrayvNV,
      glScissorExclusiveNV,
      glScissorIndexed,
      glScissorIndexedNV,
      glScissorIndexedOES,
      glScissorIndexedv,
      glScissorIndexedvNV,
      glScissorIndexedvOES,
      glSecondaryColor3b,
      glSecondaryColor3bEXT,
      glSecondaryColor3bv,
      glSecondaryColor3bvEXT,
      glSecondaryColor3d,
      glSecondaryColor3dEXT,
      glSecondaryColor3dv,
      glSecondaryColor3dvEXT,
      glSecondaryColor3f,
      glSecondaryColor3fEXT,
      glSecondaryColor3fv,
      glSecondaryColor3fvEXT,
      glSecondaryColor3hNV,
      glSecondaryColor3hvNV,
      glSecondaryColor3i,
      glSecondaryColor3iEXT,
      glSecondaryColor3iv,
      glSecondaryColor3ivEXT,
      glSecondaryColor3s,
      glSecondaryColor3sEXT,
      glSecondaryColor3sv,
      glSecondaryColor3svEXT,
      glSecondaryColor3ub,
      glSecondaryColor3ubEXT,
      glSecondaryColor3ubv,
      glSecondaryColor3ubvEXT,
      glSecondaryColor3ui,
      glSecondaryColor3uiEXT,
      glSecondaryColor3uiv,
      glSecondaryColor3uivEXT,
      glSecondaryColor3us,
      glSecondaryColor3usEXT,
      glSecondaryColor3usv,
      glSecondaryColor3usvEXT,
      glSecondaryColorFormatNV,
      glSecondaryColorP3ui,
      glSecondaryColorP3uiv,
      glSecondaryColorPointer,
      glSecondaryColorPointerEXT,
      glSecondaryColorPointerListIBM,
      glSelectBuffer,
      glSelectPerfMonitorCountersAMD,
      glSemaphoreParameterui64vEXT,
      glSeparableFilter2D,
      glSeparableFilter2DEXT,
      glSetFenceAPPLE,
      glSetFenceNV,
      glSetFragmentShaderConstantATI,
      glSetInvariantEXT,
      glSetLocalConstantEXT,
      glSetMultisamplefvAMD,
      glShadeModel,
      glShaderBinary,
      glShaderOp1EXT,
      glShaderOp2EXT,
      glShaderOp3EXT,
      glShaderSource,
      glShaderSourceARB,
      glShaderStorageBlockBinding,
      glShadingRateImageBarrierNV,
      glShadingRateImagePaletteNV,
      glShadingRateSampleOrderCustomNV,
      glShadingRateSampleOrderNV,
      glSharpenTexFuncSGIS,
      glSignalSemaphoreEXT,
      glSignalSemaphoreui64NVX,
      glSignalVkFenceNV,
      glSignalVkSemaphoreNV,
      glSpecializeShader,
      glSpecializeShaderARB,
      glSpriteParameterfSGIX,
      glSpriteParameterfvSGIX,
      glSpriteParameteriSGIX,
      glSpriteParameterivSGIX,
      glStartInstrumentsSGIX,
      glStartTilingQCOM,
      glStateCaptureNV,
      glStencilClearTagEXT,
      glStencilFillPathInstancedNV,
      glStencilFillPathNV,
      glStencilFunc,
      glStencilFuncSeparate,
      glStencilFuncSeparateATI,
      glStencilMask,
      glStencilMaskSeparate,
      glStencilOp,
      glStencilOpSeparate,
      glStencilOpSeparateATI
    ) where

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

    -- glScissor -------------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glScissor.xhtml OpenGL 4.x>.
    glScissor
      :: MonadIO m
      => GLint -- ^ @x@ of type @WinCoord@.
      -> GLint -- ^ @y@ of type @WinCoord@.
      -> GLsizei -- ^ @width@.
      -> GLsizei -- ^ @height@.
      -> m ()
    glScissor :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLint -> GLint -> m ()
    glScissor GLint
    v1 GLint
    v2 GLint
    v3 GLint
    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 (GLint -> GLint -> GLint -> GLint -> IO ())
    -> GLint -> GLint -> GLint -> GLint -> IO ()
    dyn738 FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glScissor GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4

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

    -- glScissorArrayv -------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glScissorArray.xhtml OpenGL 4.x>.
    glScissorArrayv
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
      -> m ()
    glScissorArrayv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> Ptr GLint -> m ()
    glScissorArrayv GLuint
    v1 GLint
    v2 Ptr GLint
    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 -> GLint -> Ptr GLint -> IO ())
    -> GLuint -> GLint -> Ptr GLint -> IO ()
    dyn739 FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
    ptr_glScissorArrayv GLuint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glScissorArrayvNV -----------------------------------------------------------

    -- | This command is an alias for 'glScissorArrayv'.
    glScissorArrayvNV
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
      -> m ()
    glScissorArrayvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> Ptr GLint -> m ()
    glScissorArrayvNV GLuint
    v1 GLint
    v2 Ptr GLint
    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 -> GLint -> Ptr GLint -> IO ())
    -> GLuint -> GLint -> Ptr GLint -> IO ()
    dyn739 FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
    ptr_glScissorArrayvNV GLuint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glScissorArrayvOES ----------------------------------------------------------

    -- | This command is an alias for 'glScissorArrayv'.
    glScissorArrayvOES
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
      -> m ()
    glScissorArrayvOES :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> Ptr GLint -> m ()
    glScissorArrayvOES GLuint
    v1 GLint
    v2 Ptr GLint
    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 -> GLint -> Ptr GLint -> IO ())
    -> GLuint -> GLint -> Ptr GLint -> IO ()
    dyn739 FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
    ptr_glScissorArrayvOES GLuint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glScissorExclusiveArrayvNV --------------------------------------------------

    glScissorExclusiveArrayvNV
      :: MonadIO m
      => GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
      -> m ()
    glScissorExclusiveArrayvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> Ptr GLint -> m ()
    glScissorExclusiveArrayvNV GLuint
    v1 GLint
    v2 Ptr GLint
    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 -> GLint -> Ptr GLint -> IO ())
    -> GLuint -> GLint -> Ptr GLint -> IO ()
    dyn739 FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
    ptr_glScissorExclusiveArrayvNV GLuint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glScissorExclusiveNV --------------------------------------------------------

    glScissorExclusiveNV
      :: MonadIO m
      => GLint -- ^ @x@ of type @WinCoord@.
      -> GLint -- ^ @y@ of type @WinCoord@.
      -> GLsizei -- ^ @width@.
      -> GLsizei -- ^ @height@.
      -> m ()
    glScissorExclusiveNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLint -> GLint -> m ()
    glScissorExclusiveNV GLint
    v1 GLint
    v2 GLint
    v3 GLint
    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 (GLint -> GLint -> GLint -> GLint -> IO ())
    -> GLint -> GLint -> GLint -> GLint -> IO ()
    dyn738 FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glScissorExclusiveNV GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4

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

    -- glScissorIndexed ------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glScissorIndexed.xhtml OpenGL 4.x>.
    glScissorIndexed
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLint -- ^ @left@.
      -> GLint -- ^ @bottom@.
      -> GLsizei -- ^ @width@.
      -> GLsizei -- ^ @height@.
      -> m ()
    glScissorIndexed :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
    glScissorIndexed GLuint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    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 -> GLint -> GLint -> GLint -> GLint -> IO ())
    -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
    dyn740 FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glScissorIndexed GLuint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    v5

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

    -- glScissorIndexedNV ----------------------------------------------------------

    -- | This command is an alias for 'glScissorIndexed'.
    glScissorIndexedNV
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLint -- ^ @left@.
      -> GLint -- ^ @bottom@.
      -> GLsizei -- ^ @width@.
      -> GLsizei -- ^ @height@.
      -> m ()
    glScissorIndexedNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
    glScissorIndexedNV GLuint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    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 -> GLint -> GLint -> GLint -> GLint -> IO ())
    -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
    dyn740 FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glScissorIndexedNV GLuint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    v5

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

    -- glScissorIndexedOES ---------------------------------------------------------

    -- | This command is an alias for 'glScissorIndexed'.
    glScissorIndexedOES
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLint -- ^ @left@.
      -> GLint -- ^ @bottom@.
      -> GLsizei -- ^ @width@.
      -> GLsizei -- ^ @height@.
      -> m ()
    glScissorIndexedOES :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
    glScissorIndexedOES GLuint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    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 -> GLint -> GLint -> GLint -> GLint -> IO ())
    -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
    dyn740 FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glScissorIndexedOES GLuint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    v5

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

    -- glScissorIndexedv -----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glScissorIndexed.xhtml OpenGL 4.x>.
    glScissorIndexedv
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
      -> m ()
    glScissorIndexedv :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLint -> m ()
    glScissorIndexedv GLuint
    v1 Ptr GLint
    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 GLint -> IO ())
    -> GLuint -> Ptr GLint -> IO ()
    dyn741 FunPtr (GLuint -> Ptr GLint -> IO ())
    ptr_glScissorIndexedv GLuint
    v1 Ptr GLint
    v2

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

    -- glScissorIndexedvNV ---------------------------------------------------------

    -- | This command is an alias for 'glScissorIndexedv'.
    glScissorIndexedvNV
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
      -> m ()
    glScissorIndexedvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLint -> m ()
    glScissorIndexedvNV GLuint
    v1 Ptr GLint
    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 GLint -> IO ())
    -> GLuint -> Ptr GLint -> IO ()
    dyn741 FunPtr (GLuint -> Ptr GLint -> IO ())
    ptr_glScissorIndexedvNV GLuint
    v1 Ptr GLint
    v2

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

    -- glScissorIndexedvOES --------------------------------------------------------

    -- | This command is an alias for 'glScissorIndexedv'.
    glScissorIndexedvOES
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
      -> m ()
    glScissorIndexedvOES :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLint -> m ()
    glScissorIndexedvOES GLuint
    v1 Ptr GLint
    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 GLint -> IO ())
    -> GLuint -> Ptr GLint -> IO ()
    dyn741 FunPtr (GLuint -> Ptr GLint -> IO ())
    ptr_glScissorIndexedvOES GLuint
    v1 Ptr GLint
    v2

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

    -- glSecondaryColor3b ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3bv'.
    glSecondaryColor3b
      :: MonadIO m
      => GLbyte -- ^ @red@ of type @ColorB@.
      -> GLbyte -- ^ @green@ of type @ColorB@.
      -> GLbyte -- ^ @blue@ of type @ColorB@.
      -> m ()
    glSecondaryColor3b :: forall (m :: * -> *).
    MonadIO m =>
    GLbyte -> GLbyte -> GLbyte -> m ()
    glSecondaryColor3b GLbyte
    v1 GLbyte
    v2 GLbyte
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
    -> GLbyte -> GLbyte -> GLbyte -> IO ()
    dyn39 FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
    ptr_glSecondaryColor3b GLbyte
    v1 GLbyte
    v2 GLbyte
    v3

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

    -- glSecondaryColor3bEXT -------------------------------------------------------

    -- | The vector equivalent of this command is 'glSecondaryColor3bvEXT'. This command is an alias for 'glSecondaryColor3b'.
    glSecondaryColor3bEXT
      :: MonadIO m
      => GLbyte -- ^ @red@ of type @ColorB@.
      -> GLbyte -- ^ @green@ of type @ColorB@.
      -> GLbyte -- ^ @blue@ of type @ColorB@.
      -> m ()
    glSecondaryColor3bEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLbyte -> GLbyte -> GLbyte -> m ()
    glSecondaryColor3bEXT GLbyte
    v1 GLbyte
    v2 GLbyte
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
    -> GLbyte -> GLbyte -> GLbyte -> IO ()
    dyn39 FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
    ptr_glSecondaryColor3bEXT GLbyte
    v1 GLbyte
    v2 GLbyte
    v3

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

    -- glSecondaryColor3bv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
    glSecondaryColor3bv
      :: MonadIO m
      => Ptr GLbyte -- ^ @v@ pointing to @3@ elements of type @ColorB@.
      -> m ()
    glSecondaryColor3bv :: forall (m :: * -> *). MonadIO m => Ptr GLbyte -> m ()
    glSecondaryColor3bv Ptr GLbyte
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> IO ()
    dyn40 FunPtr (Ptr GLbyte -> IO ())
    ptr_glSecondaryColor3bv Ptr GLbyte
    v1

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

    -- glSecondaryColor3bvEXT ------------------------------------------------------

    -- | This command is an alias for 'glSecondaryColor3bv'.
    glSecondaryColor3bvEXT
      :: MonadIO m
      => Ptr GLbyte -- ^ @v@ pointing to @3@ elements of type @ColorB@.
      -> m ()
    glSecondaryColor3bvEXT :: forall (m :: * -> *). MonadIO m => Ptr GLbyte -> m ()
    glSecondaryColor3bvEXT Ptr GLbyte
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> IO ()
    dyn40 FunPtr (Ptr GLbyte -> IO ())
    ptr_glSecondaryColor3bvEXT Ptr GLbyte
    v1

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

    -- glSecondaryColor3d ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3dv'.
    glSecondaryColor3d
      :: MonadIO m
      => GLdouble -- ^ @red@ of type @ColorD@.
      -> GLdouble -- ^ @green@ of type @ColorD@.
      -> GLdouble -- ^ @blue@ of type @ColorD@.
      -> m ()
    glSecondaryColor3d :: forall (m :: * -> *).
    MonadIO m =>
    GLdouble -> GLdouble -> GLdouble -> m ()
    glSecondaryColor3d GLdouble
    v1 GLdouble
    v2 GLdouble
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn41 FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glSecondaryColor3d GLdouble
    v1 GLdouble
    v2 GLdouble
    v3

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

    -- glSecondaryColor3dEXT -------------------------------------------------------

    -- | The vector equivalent of this command is 'glSecondaryColor3dvEXT'. This command is an alias for 'glSecondaryColor3d'.
    glSecondaryColor3dEXT
      :: MonadIO m
      => GLdouble -- ^ @red@ of type @ColorD@.
      -> GLdouble -- ^ @green@ of type @ColorD@.
      -> GLdouble -- ^ @blue@ of type @ColorD@.
      -> m ()
    glSecondaryColor3dEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLdouble -> GLdouble -> GLdouble -> m ()
    glSecondaryColor3dEXT GLdouble
    v1 GLdouble
    v2 GLdouble
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn41 FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glSecondaryColor3dEXT GLdouble
    v1 GLdouble
    v2 GLdouble
    v3

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

    -- glSecondaryColor3dv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
    glSecondaryColor3dv
      :: MonadIO m
      => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @ColorD@.
      -> m ()
    glSecondaryColor3dv :: forall (m :: * -> *). MonadIO m => Ptr GLdouble -> m ()
    glSecondaryColor3dv Ptr GLdouble
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> IO ()
    dyn42 FunPtr (Ptr GLdouble -> IO ())
    ptr_glSecondaryColor3dv Ptr GLdouble
    v1

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

    -- glSecondaryColor3dvEXT ------------------------------------------------------

    -- | This command is an alias for 'glSecondaryColor3dv'.
    glSecondaryColor3dvEXT
      :: MonadIO m
      => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @ColorD@.
      -> m ()
    glSecondaryColor3dvEXT :: forall (m :: * -> *). MonadIO m => Ptr GLdouble -> m ()
    glSecondaryColor3dvEXT Ptr GLdouble
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> IO ()
    dyn42 FunPtr (Ptr GLdouble -> IO ())
    ptr_glSecondaryColor3dvEXT Ptr GLdouble
    v1

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

    -- glSecondaryColor3f ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3fv'.
    glSecondaryColor3f
      :: MonadIO m
      => GLfloat -- ^ @red@ of type @ColorF@.
      -> GLfloat -- ^ @green@ of type @ColorF@.
      -> GLfloat -- ^ @blue@ of type @ColorF@.
      -> m ()
    glSecondaryColor3f :: forall (m :: * -> *).
    MonadIO m =>
    GLfloat -> GLfloat -> GLfloat -> m ()
    glSecondaryColor3f GLfloat
    v1 GLfloat
    v2 GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn43 FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glSecondaryColor3f GLfloat
    v1 GLfloat
    v2 GLfloat
    v3

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

    -- glSecondaryColor3fEXT -------------------------------------------------------

    -- | The vector equivalent of this command is 'glSecondaryColor3fvEXT'. This command is an alias for 'glSecondaryColor3f'.
    glSecondaryColor3fEXT
      :: MonadIO m
      => GLfloat -- ^ @red@ of type @ColorF@.
      -> GLfloat -- ^ @green@ of type @ColorF@.
      -> GLfloat -- ^ @blue@ of type @ColorF@.
      -> m ()
    glSecondaryColor3fEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLfloat -> GLfloat -> GLfloat -> m ()
    glSecondaryColor3fEXT GLfloat
    v1 GLfloat
    v2 GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn43 FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glSecondaryColor3fEXT GLfloat
    v1 GLfloat
    v2 GLfloat
    v3

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

    -- glSecondaryColor3fv ---------------------------------------------------------

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

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

    -- glSecondaryColor3fvEXT ------------------------------------------------------

    -- | This command is an alias for 'glSecondaryColor3fv'.
    glSecondaryColor3fvEXT
      :: MonadIO m
      => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @ColorF@.
      -> m ()
    glSecondaryColor3fvEXT :: forall (m :: * -> *). MonadIO m => Ptr GLfloat -> m ()
    glSecondaryColor3fvEXT 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_glSecondaryColor3fvEXT Ptr GLfloat
    v1

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

    -- glSecondaryColor3hNV --------------------------------------------------------

    -- | The vector equivalent of this command is 'glSecondaryColor3hvNV'.
    glSecondaryColor3hNV
      :: MonadIO m
      => GLhalfNV -- ^ @red@ of type @Half16NV@.
      -> GLhalfNV -- ^ @green@ of type @Half16NV@.
      -> GLhalfNV -- ^ @blue@ of type @Half16NV@.
      -> m ()
    glSecondaryColor3hNV :: forall (m :: * -> *).
    MonadIO m =>
    GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
    glSecondaryColor3hNV GLhalfNV
    v1 GLhalfNV
    v2 GLhalfNV
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
    -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
    dyn105 FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
    ptr_glSecondaryColor3hNV GLhalfNV
    v1 GLhalfNV
    v2 GLhalfNV
    v3

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

    -- glSecondaryColor3hvNV -------------------------------------------------------

    glSecondaryColor3hvNV
      :: MonadIO m
      => Ptr GLhalfNV -- ^ @v@ pointing to @3@ elements of type @Half16NV@.
      -> m ()
    glSecondaryColor3hvNV :: forall (m :: * -> *). MonadIO m => Ptr GLhalfNV -> m ()
    glSecondaryColor3hvNV Ptr GLhalfNV
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> IO ()
    dyn106 FunPtr (Ptr GLhalfNV -> IO ())
    ptr_glSecondaryColor3hvNV Ptr GLhalfNV
    v1

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

    -- glSecondaryColor3i ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3iv'.
    glSecondaryColor3i
      :: MonadIO m
      => GLint -- ^ @red@ of type @ColorI@.
      -> GLint -- ^ @green@ of type @ColorI@.
      -> GLint -- ^ @blue@ of type @ColorI@.
      -> m ()
    glSecondaryColor3i :: forall (m :: * -> *). MonadIO m => GLint -> GLint -> GLint -> m ()
    glSecondaryColor3i GLint
    v1 GLint
    v2 GLint
    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 (GLint -> GLint -> GLint -> IO ())
    -> GLint -> GLint -> GLint -> IO ()
    dyn45 FunPtr (GLint -> GLint -> GLint -> IO ())
    ptr_glSecondaryColor3i GLint
    v1 GLint
    v2 GLint
    v3

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

    -- glSecondaryColor3iEXT -------------------------------------------------------

    -- | The vector equivalent of this command is 'glSecondaryColor3ivEXT'. This command is an alias for 'glSecondaryColor3i'.
    glSecondaryColor3iEXT
      :: MonadIO m
      => GLint -- ^ @red@ of type @ColorI@.
      -> GLint -- ^ @green@ of type @ColorI@.
      -> GLint -- ^ @blue@ of type @ColorI@.
      -> m ()
    glSecondaryColor3iEXT :: forall (m :: * -> *). MonadIO m => GLint -> GLint -> GLint -> m ()
    glSecondaryColor3iEXT GLint
    v1 GLint
    v2 GLint
    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 (GLint -> GLint -> GLint -> IO ())
    -> GLint -> GLint -> GLint -> IO ()
    dyn45 FunPtr (GLint -> GLint -> GLint -> IO ())
    ptr_glSecondaryColor3iEXT GLint
    v1 GLint
    v2 GLint
    v3

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

    -- glSecondaryColor3iv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
    glSecondaryColor3iv
      :: MonadIO m
      => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @ColorI@.
      -> m ()
    glSecondaryColor3iv :: forall (m :: * -> *). MonadIO m => Ptr GLint -> m ()
    glSecondaryColor3iv Ptr GLint
    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 GLint -> IO ()) -> Ptr GLint -> IO ()
    dyn46 FunPtr (Ptr GLint -> IO ())
    ptr_glSecondaryColor3iv Ptr GLint
    v1

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

    -- glSecondaryColor3ivEXT ------------------------------------------------------

    -- | This command is an alias for 'glSecondaryColor3iv'.
    glSecondaryColor3ivEXT
      :: MonadIO m
      => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @ColorI@.
      -> m ()
    glSecondaryColor3ivEXT :: forall (m :: * -> *). MonadIO m => Ptr GLint -> m ()
    glSecondaryColor3ivEXT Ptr GLint
    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 GLint -> IO ()) -> Ptr GLint -> IO ()
    dyn46 FunPtr (Ptr GLint -> IO ())
    ptr_glSecondaryColor3ivEXT Ptr GLint
    v1

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

    -- glSecondaryColor3s ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3sv'.
    glSecondaryColor3s
      :: MonadIO m
      => GLshort -- ^ @red@ of type @ColorS@.
      -> GLshort -- ^ @green@ of type @ColorS@.
      -> GLshort -- ^ @blue@ of type @ColorS@.
      -> m ()
    glSecondaryColor3s :: forall (m :: * -> *).
    MonadIO m =>
    GLshort -> GLshort -> GLshort -> m ()
    glSecondaryColor3s GLshort
    v1 GLshort
    v2 GLshort
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLshort -> GLshort -> GLshort -> IO ())
    -> GLshort -> GLshort -> GLshort -> IO ()
    dyn47 FunPtr (GLshort -> GLshort -> GLshort -> IO ())
    ptr_glSecondaryColor3s GLshort
    v1 GLshort
    v2 GLshort
    v3

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

    -- glSecondaryColor3sEXT -------------------------------------------------------

    -- | The vector equivalent of this command is 'glSecondaryColor3svEXT'. This command is an alias for 'glSecondaryColor3s'.
    glSecondaryColor3sEXT
      :: MonadIO m
      => GLshort -- ^ @red@ of type @ColorS@.
      -> GLshort -- ^ @green@ of type @ColorS@.
      -> GLshort -- ^ @blue@ of type @ColorS@.
      -> m ()
    glSecondaryColor3sEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLshort -> GLshort -> GLshort -> m ()
    glSecondaryColor3sEXT GLshort
    v1 GLshort
    v2 GLshort
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLshort -> GLshort -> GLshort -> IO ())
    -> GLshort -> GLshort -> GLshort -> IO ()
    dyn47 FunPtr (GLshort -> GLshort -> GLshort -> IO ())
    ptr_glSecondaryColor3sEXT GLshort
    v1 GLshort
    v2 GLshort
    v3

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

    -- glSecondaryColor3sv ---------------------------------------------------------

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

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

    -- glSecondaryColor3svEXT ------------------------------------------------------

    -- | This command is an alias for 'glSecondaryColor3sv'.
    glSecondaryColor3svEXT
      :: MonadIO m
      => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @ColorS@.
      -> m ()
    glSecondaryColor3svEXT :: forall (m :: * -> *). MonadIO m => Ptr GLshort -> m ()
    glSecondaryColor3svEXT 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_glSecondaryColor3svEXT Ptr GLshort
    v1

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

    -- glSecondaryColor3ub ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3ubv'.
    glSecondaryColor3ub
      :: MonadIO m
      => GLubyte -- ^ @red@ of type @ColorUB@.
      -> GLubyte -- ^ @green@ of type @ColorUB@.
      -> GLubyte -- ^ @blue@ of type @ColorUB@.
      -> m ()
    glSecondaryColor3ub :: forall (m :: * -> *).
    MonadIO m =>
    GLubyte -> GLubyte -> GLubyte -> m ()
    glSecondaryColor3ub GLubyte
    v1 GLubyte
    v2 GLubyte
    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 (GLubyte -> GLubyte -> GLubyte -> IO ())
    -> GLubyte -> GLubyte -> GLubyte -> IO ()
    dyn107 FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
    ptr_glSecondaryColor3ub GLubyte
    v1 GLubyte
    v2 GLubyte
    v3

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

    -- glSecondaryColor3ubEXT ------------------------------------------------------

    -- | The vector equivalent of this command is 'glSecondaryColor3ubvEXT'. This command is an alias for 'glSecondaryColor3ub'.
    glSecondaryColor3ubEXT
      :: MonadIO m
      => GLubyte -- ^ @red@ of type @ColorUB@.
      -> GLubyte -- ^ @green@ of type @ColorUB@.
      -> GLubyte -- ^ @blue@ of type @ColorUB@.
      -> m ()
    glSecondaryColor3ubEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLubyte -> GLubyte -> GLubyte -> m ()
    glSecondaryColor3ubEXT GLubyte
    v1 GLubyte
    v2 GLubyte
    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 (GLubyte -> GLubyte -> GLubyte -> IO ())
    -> GLubyte -> GLubyte -> GLubyte -> IO ()
    dyn107 FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
    ptr_glSecondaryColor3ubEXT GLubyte
    v1 GLubyte
    v2 GLubyte
    v3

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

    -- glSecondaryColor3ubv --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
    glSecondaryColor3ubv
      :: MonadIO m
      => Ptr GLubyte -- ^ @v@ pointing to @3@ elements of type @ColorUB@.
      -> m ()
    glSecondaryColor3ubv :: forall (m :: * -> *). MonadIO m => Ptr GLubyte -> m ()
    glSecondaryColor3ubv Ptr GLubyte
    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 GLubyte -> IO ()) -> Ptr GLubyte -> IO ()
    dyn108 FunPtr (Ptr GLubyte -> IO ())
    ptr_glSecondaryColor3ubv Ptr GLubyte
    v1

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

    -- glSecondaryColor3ubvEXT -----------------------------------------------------

    -- | This command is an alias for 'glSecondaryColor3ubv'.
    glSecondaryColor3ubvEXT
      :: MonadIO m
      => Ptr GLubyte -- ^ @v@ pointing to @3@ elements of type @ColorUB@.
      -> m ()
    glSecondaryColor3ubvEXT :: forall (m :: * -> *). MonadIO m => Ptr GLubyte -> m ()
    glSecondaryColor3ubvEXT Ptr GLubyte
    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 GLubyte -> IO ()) -> Ptr GLubyte -> IO ()
    dyn108 FunPtr (Ptr GLubyte -> IO ())
    ptr_glSecondaryColor3ubvEXT Ptr GLubyte
    v1

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

    -- glSecondaryColor3ui ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3uiv'.
    glSecondaryColor3ui
      :: MonadIO m
      => GLuint -- ^ @red@ of type @ColorUI@.
      -> GLuint -- ^ @green@ of type @ColorUI@.
      -> GLuint -- ^ @blue@ of type @ColorUI@.
      -> m ()
    glSecondaryColor3ui :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glSecondaryColor3ui 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_glSecondaryColor3ui GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glSecondaryColor3uiEXT ------------------------------------------------------

    -- | The vector equivalent of this command is 'glSecondaryColor3uivEXT'. This command is an alias for 'glSecondaryColor3ui'.
    glSecondaryColor3uiEXT
      :: MonadIO m
      => GLuint -- ^ @red@ of type @ColorUI@.
      -> GLuint -- ^ @green@ of type @ColorUI@.
      -> GLuint -- ^ @blue@ of type @ColorUI@.
      -> m ()
    glSecondaryColor3uiEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glSecondaryColor3uiEXT 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_glSecondaryColor3uiEXT GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glSecondaryColor3uiv --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
    glSecondaryColor3uiv
      :: MonadIO m
      => Ptr GLuint -- ^ @v@ pointing to @3@ elements of type @ColorUI@.
      -> m ()
    glSecondaryColor3uiv :: forall (m :: * -> *). MonadIO m => Ptr GLuint -> m ()
    glSecondaryColor3uiv Ptr 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 (Ptr GLuint -> IO ()) -> Ptr GLuint -> IO ()
    dyn110 FunPtr (Ptr GLuint -> IO ())
    ptr_glSecondaryColor3uiv Ptr GLuint
    v1

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

    -- glSecondaryColor3uivEXT -----------------------------------------------------

    -- | This command is an alias for 'glSecondaryColor3uiv'.
    glSecondaryColor3uivEXT
      :: MonadIO m
      => Ptr GLuint -- ^ @v@ pointing to @3@ elements of type @ColorUI@.
      -> m ()
    glSecondaryColor3uivEXT :: forall (m :: * -> *). MonadIO m => Ptr GLuint -> m ()
    glSecondaryColor3uivEXT Ptr 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 (Ptr GLuint -> IO ()) -> Ptr GLuint -> IO ()
    dyn110 FunPtr (Ptr GLuint -> IO ())
    ptr_glSecondaryColor3uivEXT Ptr GLuint
    v1

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

    -- glSecondaryColor3us ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3usv'.
    glSecondaryColor3us
      :: MonadIO m
      => GLushort -- ^ @red@ of type @ColorUS@.
      -> GLushort -- ^ @green@ of type @ColorUS@.
      -> GLushort -- ^ @blue@ of type @ColorUS@.
      -> m ()
    glSecondaryColor3us :: forall (m :: * -> *).
    MonadIO m =>
    GLushort -> GLushort -> GLushort -> m ()
    glSecondaryColor3us GLushort
    v1 GLushort
    v2 GLushort
    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 (GLushort -> GLushort -> GLushort -> IO ())
    -> GLushort -> GLushort -> GLushort -> IO ()
    dyn111 FunPtr (GLushort -> GLushort -> GLushort -> IO ())
    ptr_glSecondaryColor3us GLushort
    v1 GLushort
    v2 GLushort
    v3

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

    -- glSecondaryColor3usEXT ------------------------------------------------------

    -- | The vector equivalent of this command is 'glSecondaryColor3usvEXT'. This command is an alias for 'glSecondaryColor3us'.
    glSecondaryColor3usEXT
      :: MonadIO m
      => GLushort -- ^ @red@ of type @ColorUS@.
      -> GLushort -- ^ @green@ of type @ColorUS@.
      -> GLushort -- ^ @blue@ of type @ColorUS@.
      -> m ()
    glSecondaryColor3usEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLushort -> GLushort -> GLushort -> m ()
    glSecondaryColor3usEXT GLushort
    v1 GLushort
    v2 GLushort
    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 (GLushort -> GLushort -> GLushort -> IO ())
    -> GLushort -> GLushort -> GLushort -> IO ()
    dyn111 FunPtr (GLushort -> GLushort -> GLushort -> IO ())
    ptr_glSecondaryColor3usEXT GLushort
    v1 GLushort
    v2 GLushort
    v3

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

    -- glSecondaryColor3usv --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
    glSecondaryColor3usv
      :: MonadIO m
      => Ptr GLushort -- ^ @v@ pointing to @3@ elements of type @ColorUS@.
      -> m ()
    glSecondaryColor3usv :: forall (m :: * -> *). MonadIO m => Ptr GLushort -> m ()
    glSecondaryColor3usv Ptr GLushort
    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 GLushort -> IO ()) -> Ptr GLushort -> IO ()
    dyn112 FunPtr (Ptr GLushort -> IO ())
    ptr_glSecondaryColor3usv Ptr GLushort
    v1

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

    -- glSecondaryColor3usvEXT -----------------------------------------------------

    -- | This command is an alias for 'glSecondaryColor3usv'.
    glSecondaryColor3usvEXT
      :: MonadIO m
      => Ptr GLushort -- ^ @v@ pointing to @3@ elements of type @ColorUS@.
      -> m ()
    glSecondaryColor3usvEXT :: forall (m :: * -> *). MonadIO m => Ptr GLushort -> m ()
    glSecondaryColor3usvEXT Ptr GLushort
    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 GLushort -> IO ()) -> Ptr GLushort -> IO ()
    dyn112 FunPtr (Ptr GLushort -> IO ())
    ptr_glSecondaryColor3usvEXT Ptr GLushort
    v1

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

    -- glSecondaryColorFormatNV ----------------------------------------------------

    glSecondaryColorFormatNV
      :: MonadIO m
      => GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
      -> GLsizei -- ^ @stride@.
      -> m ()
    glSecondaryColorFormatNV :: forall (m :: * -> *). MonadIO m => GLint -> GLuint -> GLint -> m ()
    glSecondaryColorFormatNV GLint
    v1 GLuint
    v2 GLint
    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 (GLint -> GLuint -> GLint -> IO ())
    -> GLint -> GLuint -> GLint -> IO ()
    dyn126 FunPtr (GLint -> GLuint -> GLint -> IO ())
    ptr_glSecondaryColorFormatNV GLint
    v1 GLuint
    v2 GLint
    v3

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

    -- glSecondaryColorP3ui --------------------------------------------------------

    glSecondaryColorP3ui
      :: MonadIO m
      => GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
      -> GLuint -- ^ @color@.
      -> m ()
    glSecondaryColorP3ui :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glSecondaryColorP3ui 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_glSecondaryColorP3ui GLuint
    v1 GLuint
    v2

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

    -- glSecondaryColorP3uiv -------------------------------------------------------

    glSecondaryColorP3uiv
      :: MonadIO m
      => GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
      -> Ptr GLuint -- ^ @color@ pointing to @1@ element of type @GLuint@.
      -> m ()
    glSecondaryColorP3uiv :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLuint -> m ()
    glSecondaryColorP3uiv GLuint
    v1 Ptr GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> Ptr GLuint -> IO ())
    -> GLuint -> Ptr GLuint -> IO ()
    dyn132 FunPtr (GLuint -> Ptr GLuint -> IO ())
    ptr_glSecondaryColorP3uiv GLuint
    v1 Ptr GLuint
    v2

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

    -- glSecondaryColorPointer -----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColorPointer.xml OpenGL 2.x>.
    glSecondaryColorPointer
      :: MonadIO m
      => GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
      -> GLsizei -- ^ @stride@.
      -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
      -> m ()
    glSecondaryColorPointer :: forall (m :: * -> *) a.
    MonadIO m =>
    GLint -> GLuint -> GLint -> Ptr a -> m ()
    glSecondaryColorPointer GLint
    v1 GLuint
    v2 GLint
    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 (GLint -> GLuint -> GLint -> Ptr a -> IO ())
    -> GLint -> GLuint -> GLint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLint -> GLuint -> GLint -> Ptr a -> IO ())
    -> GLint -> GLuint -> GLint -> Ptr a -> IO ()
    dyn133 FunPtr (GLint -> GLuint -> GLint -> Ptr a -> IO ())
    forall a. FunPtr (GLint -> GLuint -> GLint -> Ptr a -> IO ())
    ptr_glSecondaryColorPointer GLint
    v1 GLuint
    v2 GLint
    v3 Ptr a
    v4

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

    -- glSecondaryColorPointerEXT --------------------------------------------------

    -- | This command is an alias for 'glSecondaryColorPointer'.
    glSecondaryColorPointerEXT
      :: MonadIO m
      => GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
      -> GLsizei -- ^ @stride@.
      -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
      -> m ()
    glSecondaryColorPointerEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLint -> GLuint -> GLint -> Ptr a -> m ()
    glSecondaryColorPointerEXT GLint
    v1 GLuint
    v2 GLint
    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 (GLint -> GLuint -> GLint -> Ptr a -> IO ())
    -> GLint -> GLuint -> GLint -> Ptr a -> IO ()
    forall a.
    FunPtr (GLint -> GLuint -> GLint -> Ptr a -> IO ())
    -> GLint -> GLuint -> GLint -> Ptr a -> IO ()
    dyn133 FunPtr (GLint -> GLuint -> GLint -> Ptr a -> IO ())
    forall a. FunPtr (GLint -> GLuint -> GLint -> Ptr a -> IO ())
    ptr_glSecondaryColorPointerEXT GLint
    v1 GLuint
    v2 GLint
    v3 Ptr a
    v4

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

    -- glSecondaryColorPointerListIBM ----------------------------------------------

    glSecondaryColorPointerListIBM
      :: MonadIO m
      => GLint -- ^ @size@.
      -> GLenum -- ^ @type@ of type [SecondaryColorPointerTypeIBM](Graphics-GL-Groups.html#SecondaryColorPointerTypeIBM).
      -> GLint -- ^ @stride@.
      -> Ptr (Ptr a) -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @Ptr a@.
      -> GLint -- ^ @ptrstride@.
      -> m ()
    glSecondaryColorPointerListIBM :: forall (m :: * -> *) a.
    MonadIO m =>
    GLint -> GLuint -> GLint -> Ptr (Ptr a) -> GLint -> m ()
    glSecondaryColorPointerListIBM GLint
    v1 GLuint
    v2 GLint
    v3 Ptr (Ptr a)
    v4 GLint
    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 (GLint -> GLuint -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
    -> GLint -> GLuint -> GLint -> Ptr (Ptr a) -> GLint -> IO ()
    forall a.
    FunPtr (GLint -> GLuint -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
    -> GLint -> GLuint -> GLint -> Ptr (Ptr a) -> GLint -> IO ()
    dyn135 FunPtr (GLint -> GLuint -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
    forall a.
    FunPtr (GLint -> GLuint -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
    ptr_glSecondaryColorPointerListIBM GLint
    v1 GLuint
    v2 GLint
    v3 Ptr (Ptr a)
    v4 GLint
    v5

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

    -- glSelectBuffer --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml OpenGL 2.x>.
    glSelectBuffer
      :: MonadIO m
      => GLsizei -- ^ @size@.
      -> Ptr GLuint -- ^ @buffer@ pointing to @size@ elements of type @SelectName@.
      -> m ()
    glSelectBuffer :: forall (m :: * -> *). MonadIO m => GLint -> Ptr GLuint -> m ()
    glSelectBuffer GLint
    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 (GLint -> Ptr GLuint -> IO ())
    -> GLint -> Ptr GLuint -> IO ()
    dyn200 FunPtr (GLint -> Ptr GLuint -> IO ())
    ptr_glSelectBuffer GLint
    v1 Ptr GLuint
    v2

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

    -- glSelectPerfMonitorCountersAMD ----------------------------------------------

    glSelectPerfMonitorCountersAMD
      :: MonadIO m
      => GLuint -- ^ @monitor@.
      -> GLboolean -- ^ @enable@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> GLuint -- ^ @group@.
      -> GLint -- ^ @numCounters@.
      -> Ptr GLuint -- ^ @counterList@ pointing to @numCounters@ elements of type @GLuint@.
      -> m ()
    glSelectPerfMonitorCountersAMD :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> m ()
    glSelectPerfMonitorCountersAMD GLuint
    v1 GLubyte
    v2 GLuint
    v3 GLint
    v4 Ptr 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 -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ())
    -> GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ()
    dyn742 FunPtr
      (GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ())
    ptr_glSelectPerfMonitorCountersAMD GLuint
    v1 GLubyte
    v2 GLuint
    v3 GLint
    v4 Ptr GLuint
    v5

    {-# NOINLINE ptr_glSelectPerfMonitorCountersAMD #-}
    ptr_glSelectPerfMonitorCountersAMD :: FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ())
    ptr_glSelectPerfMonitorCountersAMD :: FunPtr
      (GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ())
    ptr_glSelectPerfMonitorCountersAMD = IO
      (FunPtr
         (GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ()))
    -> FunPtr
         (GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ()))
     -> FunPtr
          (GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ()))
    -> IO
         (FunPtr
            (GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ()))
    -> FunPtr
         (GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLuint -> GLubyte -> GLuint -> GLint -> Ptr GLuint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glSelectPerfMonitorCountersAMD"

    -- glSemaphoreParameterui64vEXT ------------------------------------------------

    glSemaphoreParameterui64vEXT
      :: MonadIO m
      => GLuint -- ^ @semaphore@.
      -> GLenum -- ^ @pname@ of type [SemaphoreParameterName](Graphics-GL-Groups.html#SemaphoreParameterName).
      -> Ptr GLuint64 -- ^ @params@.
      -> m ()
    glSemaphoreParameterui64vEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLuint64 -> m ()
    glSemaphoreParameterui64vEXT GLuint
    v1 GLuint
    v2 Ptr GLuint64
    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 GLuint64 -> IO ())
    -> GLuint -> GLuint -> Ptr GLuint64 -> IO ()
    dyn419 FunPtr (GLuint -> GLuint -> Ptr GLuint64 -> IO ())
    ptr_glSemaphoreParameterui64vEXT GLuint
    v1 GLuint
    v2 Ptr GLuint64
    v3

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

    -- glSeparableFilter2D ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSeparableFilter2D.xml OpenGL 2.x>.
    glSeparableFilter2D
      :: MonadIO m
      => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
      -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
      -> 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 -- ^ @row@ pointing to @COMPSIZE(target,format,type,width)@ elements of type @a@.
      -> Ptr b -- ^ @column@ pointing to @COMPSIZE(target,format,type,height)@ elements of type @b@.
      -> m ()
    glSeparableFilter2D :: forall (m :: * -> *) a b.
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLint
    -> GLint
    -> GLuint
    -> GLuint
    -> Ptr a
    -> Ptr b
    -> m ()
    glSeparableFilter2D GLuint
    v1 GLuint
    v2 GLint
    v3 GLint
    v4 GLuint
    v5 GLuint
    v6 Ptr a
    v7 Ptr b
    v8 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLuint
       -> GLint
       -> GLint
       -> GLuint
       -> GLuint
       -> Ptr a
       -> Ptr b
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLint
    -> GLint
    -> GLuint
    -> GLuint
    -> Ptr a
    -> Ptr b
    -> IO ()
    forall a b.
    FunPtr
      (GLuint
       -> GLuint
       -> GLint
       -> GLint
       -> GLuint
       -> GLuint
       -> Ptr a
       -> Ptr b
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLint
    -> GLint
    -> GLuint
    -> GLuint
    -> Ptr a
    -> Ptr b
    -> IO ()
    dyn743 FunPtr
      (GLuint
       -> GLuint
       -> GLint
       -> GLint
       -> GLuint
       -> GLuint
       -> Ptr a
       -> Ptr b
       -> IO ())
    forall a b.
    FunPtr
      (GLuint
       -> GLuint
       -> GLint
       -> GLint
       -> GLuint
       -> GLuint
       -> Ptr a
       -> Ptr b
       -> IO ())
    ptr_glSeparableFilter2D GLuint
    v1 GLuint
    v2 GLint
    v3 GLint
    v4 GLuint
    v5 GLuint
    v6 Ptr a
    v7 Ptr b
    v8

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

    -- glSeparableFilter2DEXT ------------------------------------------------------

    -- | This command is an alias for 'glSeparableFilter2D'.
    glSeparableFilter2DEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
      -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
      -> 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 -- ^ @row@ pointing to @COMPSIZE(target,format,type,width)@ elements of type @a@.
      -> Ptr b -- ^ @column@ pointing to @COMPSIZE(target,format,type,height)@ elements of type @b@.
      -> m ()
    glSeparableFilter2DEXT :: forall (m :: * -> *) a b.
    MonadIO m =>
    GLuint
    -> GLuint
    -> GLint
    -> GLint
    -> GLuint
    -> GLuint
    -> Ptr a
    -> Ptr b
    -> m ()
    glSeparableFilter2DEXT GLuint
    v1 GLuint
    v2 GLint
    v3 GLint
    v4 GLuint
    v5 GLuint
    v6 Ptr a
    v7 Ptr b
    v8 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLuint
       -> GLint
       -> GLint
       -> GLuint
       -> GLuint
       -> Ptr a
       -> Ptr b
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLint
    -> GLint
    -> GLuint
    -> GLuint
    -> Ptr a
    -> Ptr b
    -> IO ()
    forall a b.
    FunPtr
      (GLuint
       -> GLuint
       -> GLint
       -> GLint
       -> GLuint
       -> GLuint
       -> Ptr a
       -> Ptr b
       -> IO ())
    -> GLuint
    -> GLuint
    -> GLint
    -> GLint
    -> GLuint
    -> GLuint
    -> Ptr a
    -> Ptr b
    -> IO ()
    dyn743 FunPtr
      (GLuint
       -> GLuint
       -> GLint
       -> GLint
       -> GLuint
       -> GLuint
       -> Ptr a
       -> Ptr b
       -> IO ())
    forall a b.
    FunPtr
      (GLuint
       -> GLuint
       -> GLint
       -> GLint
       -> GLuint
       -> GLuint
       -> Ptr a
       -> Ptr b
       -> IO ())
    ptr_glSeparableFilter2DEXT GLuint
    v1 GLuint
    v2 GLint
    v3 GLint
    v4 GLuint
    v5 GLuint
    v6 Ptr a
    v7 Ptr b
    v8

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

    -- glSetFenceAPPLE -------------------------------------------------------------

    glSetFenceAPPLE
      :: MonadIO m
      => GLuint -- ^ @fence@ of type @FenceNV@.
      -> m ()
    glSetFenceAPPLE :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glSetFenceAPPLE 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_glSetFenceAPPLE GLuint
    v1

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

    -- glSetFenceNV ----------------------------------------------------------------

    glSetFenceNV
      :: MonadIO m
      => GLuint -- ^ @fence@ of type @FenceNV@.
      -> GLenum -- ^ @condition@ of type [FenceConditionNV](Graphics-GL-Groups.html#FenceConditionNV).
      -> m ()
    glSetFenceNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glSetFenceNV 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_glSetFenceNV GLuint
    v1 GLuint
    v2

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

    -- glSetFragmentShaderConstantATI ----------------------------------------------

    glSetFragmentShaderConstantATI
      :: MonadIO m
      => GLuint -- ^ @dst@.
      -> Ptr GLfloat -- ^ @value@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glSetFragmentShaderConstantATI :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfloat -> m ()
    glSetFragmentShaderConstantATI GLuint
    v1 Ptr GLfloat
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> Ptr GLfloat -> IO ()
    dyn394 FunPtr (GLuint -> Ptr GLfloat -> IO ())
    ptr_glSetFragmentShaderConstantATI GLuint
    v1 Ptr GLfloat
    v2

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

    -- glSetInvariantEXT -----------------------------------------------------------

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

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

    -- glSetLocalConstantEXT -------------------------------------------------------

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

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

    -- glSetMultisamplefvAMD -------------------------------------------------------

    glSetMultisamplefvAMD
      :: MonadIO m
      => GLenum -- ^ @pname@.
      -> GLuint -- ^ @index@.
      -> Ptr GLfloat -- ^ @val@ pointing to @2@ elements of type @GLfloat@.
      -> m ()
    glSetMultisamplefvAMD :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLfloat -> m ()
    glSetMultisamplefvAMD GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
    dyn278 FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glSetMultisamplefvAMD GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3

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

    -- glShadeModel ----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml OpenGL 2.x>.
    glShadeModel
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [ShadingModel](Graphics-GL-Groups.html#ShadingModel).
      -> m ()
    glShadeModel :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glShadeModel 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_glShadeModel GLuint
    v1

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

    -- glShaderBinary --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glShaderBinary.xhtml OpenGL 4.x>.
    glShaderBinary
      :: MonadIO m
      => GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @shaders@ pointing to @count@ elements of type @GLuint@.
      -> GLenum -- ^ @binaryformat@.
      -> Ptr a -- ^ @binary@ pointing to @length@ elements of type @a@.
      -> GLsizei -- ^ @length@.
      -> m ()
    glShaderBinary :: forall (m :: * -> *) a.
    MonadIO m =>
    GLint -> Ptr GLuint -> GLuint -> Ptr a -> GLint -> m ()
    glShaderBinary GLint
    v1 Ptr GLuint
    v2 GLuint
    v3 Ptr a
    v4 GLint
    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 (GLint -> Ptr GLuint -> GLuint -> Ptr a -> GLint -> IO ())
    -> GLint -> Ptr GLuint -> GLuint -> Ptr a -> GLint -> IO ()
    forall a.
    FunPtr (GLint -> Ptr GLuint -> GLuint -> Ptr a -> GLint -> IO ())
    -> GLint -> Ptr GLuint -> GLuint -> Ptr a -> GLint -> IO ()
    dyn744 FunPtr (GLint -> Ptr GLuint -> GLuint -> Ptr a -> GLint -> IO ())
    forall a.
    FunPtr (GLint -> Ptr GLuint -> GLuint -> Ptr a -> GLint -> IO ())
    ptr_glShaderBinary GLint
    v1 Ptr GLuint
    v2 GLuint
    v3 Ptr a
    v4 GLint
    v5

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

    -- glShaderOp1EXT --------------------------------------------------------------

    glShaderOp1EXT
      :: MonadIO m
      => GLenum -- ^ @op@ of type [VertexShaderOpEXT](Graphics-GL-Groups.html#VertexShaderOpEXT).
      -> GLuint -- ^ @res@.
      -> GLuint -- ^ @arg1@.
      -> m ()
    glShaderOp1EXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glShaderOp1EXT 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 ()
    dyn20 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glShaderOp1EXT GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glShaderOp2EXT --------------------------------------------------------------

    glShaderOp2EXT
      :: MonadIO m
      => GLenum -- ^ @op@ of type [VertexShaderOpEXT](Graphics-GL-Groups.html#VertexShaderOpEXT).
      -> GLuint -- ^ @res@.
      -> GLuint -- ^ @arg1@.
      -> GLuint -- ^ @arg2@.
      -> m ()
    glShaderOp2EXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> m ()
    glShaderOp2EXT GLuint
    v1 GLuint
    v2 GLuint
    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 -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn745 FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glShaderOp2EXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4

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

    -- glShaderOp3EXT --------------------------------------------------------------

    glShaderOp3EXT
      :: MonadIO m
      => GLenum -- ^ @op@ of type [VertexShaderOpEXT](Graphics-GL-Groups.html#VertexShaderOpEXT).
      -> GLuint -- ^ @res@.
      -> GLuint -- ^ @arg1@.
      -> GLuint -- ^ @arg2@.
      -> GLuint -- ^ @arg3@.
      -> m ()
    glShaderOp3EXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
    glShaderOp3EXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn746 FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glShaderOp3EXT GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5

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

    -- glShaderSource --------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glShaderSource.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glShaderSource.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glShaderSource.xhtml OpenGL 4.x>.
    glShaderSource
      :: MonadIO m
      => GLuint -- ^ @shader@.
      -> GLsizei -- ^ @count@.
      -> Ptr (Ptr GLchar) -- ^ @string@ pointing to @count@ elements of type @Ptr GLchar@.
      -> Ptr GLint -- ^ @length@ pointing to @count@ elements of type @GLint@.
      -> m ()
    glShaderSource :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
    glShaderSource GLuint
    v1 GLint
    v2 Ptr (Ptr GLchar)
    v3 Ptr GLint
    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 -> GLint -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
    -> GLuint -> GLint -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()
    dyn145 FunPtr (GLuint -> GLint -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
    ptr_glShaderSource GLuint
    v1 GLint
    v2 Ptr (Ptr GLchar)
    v3 Ptr GLint
    v4

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

    -- glShaderSourceARB -----------------------------------------------------------

    -- | This command is an alias for 'glShaderSource'.
    glShaderSourceARB
      :: MonadIO m
      => GLhandleARB -- ^ @shaderObj@ of type @handleARB@.
      -> GLsizei -- ^ @count@.
      -> Ptr (Ptr GLcharARB) -- ^ @string@ pointing to @count@ elements of type @Ptr GLcharARB@.
      -> Ptr GLint -- ^ @length@ pointing to @count@ elements of type @GLint@.
      -> m ()
    glShaderSourceARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
    glShaderSourceARB GLuint
    v1 GLint
    v2 Ptr (Ptr GLchar)
    v3 Ptr GLint
    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 -> GLint -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
    -> GLuint -> GLint -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()
    dyn747 FunPtr (GLuint -> GLint -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
    ptr_glShaderSourceARB GLuint
    v1 GLint
    v2 Ptr (Ptr GLchar)
    v3 Ptr GLint
    v4

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

    -- glShaderStorageBlockBinding -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glShaderStorageBlockBinding.xhtml OpenGL 4.x>.
    glShaderStorageBlockBinding
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @storageBlockIndex@.
      -> GLuint -- ^ @storageBlockBinding@.
      -> m ()
    glShaderStorageBlockBinding :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glShaderStorageBlockBinding 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_glShaderStorageBlockBinding GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glShadingRateImageBarrierNV -------------------------------------------------

    glShadingRateImageBarrierNV
      :: MonadIO m
      => GLboolean -- ^ @synchronize@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m ()
    glShadingRateImageBarrierNV :: forall (m :: * -> *). MonadIO m => GLubyte -> m ()
    glShadingRateImageBarrierNV GLubyte
    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 (GLubyte -> IO ()) -> GLubyte -> IO ()
    dyn198 FunPtr (GLubyte -> IO ())
    ptr_glShadingRateImageBarrierNV GLubyte
    v1

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

    -- glShadingRateImagePaletteNV -------------------------------------------------

    glShadingRateImagePaletteNV
      :: MonadIO m
      => GLuint -- ^ @viewport@.
      -> GLuint -- ^ @first@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLenum -- ^ @rates@ pointing to @count@ elements of type @GLenum@.
      -> m ()
    glShadingRateImagePaletteNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLint -> Ptr GLuint -> m ()
    glShadingRateImagePaletteNV GLuint
    v1 GLuint
    v2 GLint
    v3 Ptr GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLint -> Ptr GLuint -> IO ())
    -> GLuint -> GLuint -> GLint -> Ptr GLuint -> IO ()
    dyn748 FunPtr (GLuint -> GLuint -> GLint -> Ptr GLuint -> IO ())
    ptr_glShadingRateImagePaletteNV GLuint
    v1 GLuint
    v2 GLint
    v3 Ptr GLuint
    v4

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

    -- glShadingRateSampleOrderCustomNV --------------------------------------------

    glShadingRateSampleOrderCustomNV
      :: MonadIO m
      => GLenum -- ^ @rate@.
      -> GLuint -- ^ @samples@.
      -> Ptr GLint -- ^ @locations@ pointing to @COMPSIZE(rate,samples)@ elements of type @GLint@.
      -> m ()
    glShadingRateSampleOrderCustomNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLint -> m ()
    glShadingRateSampleOrderCustomNV GLuint
    v1 GLuint
    v2 Ptr GLint
    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 GLint -> IO ())
    -> GLuint -> GLuint -> Ptr GLint -> IO ()
    dyn357 FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
    ptr_glShadingRateSampleOrderCustomNV GLuint
    v1 GLuint
    v2 Ptr GLint
    v3

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

    -- glShadingRateSampleOrderNV --------------------------------------------------

    glShadingRateSampleOrderNV
      :: MonadIO m
      => GLenum -- ^ @order@.
      -> m ()
    glShadingRateSampleOrderNV :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glShadingRateSampleOrderNV 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_glShadingRateSampleOrderNV GLuint
    v1

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

    -- glSharpenTexFuncSGIS --------------------------------------------------------

    glSharpenTexFuncSGIS
      :: 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 ()
    glSharpenTexFuncSGIS :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> Ptr GLfloat -> m ()
    glSharpenTexFuncSGIS GLuint
    v1 GLint
    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 -> GLint -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> Ptr GLfloat -> IO ()
    dyn233 FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
    ptr_glSharpenTexFuncSGIS GLuint
    v1 GLint
    v2 Ptr GLfloat
    v3

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

    -- glSignalSemaphoreEXT --------------------------------------------------------

    glSignalSemaphoreEXT
      :: MonadIO m
      => GLuint -- ^ @semaphore@.
      -> GLuint -- ^ @numBufferBarriers@.
      -> Ptr GLuint -- ^ @buffers@ pointing to @COMPSIZE(numBufferBarriers)@ elements of type @GLuint@.
      -> GLuint -- ^ @numTextureBarriers@.
      -> Ptr GLuint -- ^ @textures@ pointing to @COMPSIZE(numTextureBarriers)@ elements of type @GLuint@.
      -> Ptr GLenum -- ^ @dstLayouts@ pointing to @COMPSIZE(numTextureBarriers)@ elements of type [TextureLayout](Graphics-GL-Groups.html#TextureLayout).
      -> m ()
    glSignalSemaphoreEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint
    -> Ptr GLuint
    -> GLuint
    -> Ptr GLuint
    -> Ptr GLuint
    -> m ()
    glSignalSemaphoreEXT GLuint
    v1 GLuint
    v2 Ptr GLuint
    v3 GLuint
    v4 Ptr GLuint
    v5 Ptr 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
       -> Ptr GLuint
       -> GLuint
       -> Ptr GLuint
       -> Ptr GLuint
       -> IO ())
    -> GLuint
    -> GLuint
    -> Ptr GLuint
    -> GLuint
    -> Ptr GLuint
    -> Ptr GLuint
    -> IO ()
    dyn749 FunPtr
      (GLuint
       -> GLuint
       -> Ptr GLuint
       -> GLuint
       -> Ptr GLuint
       -> Ptr GLuint
       -> IO ())
    ptr_glSignalSemaphoreEXT GLuint
    v1 GLuint
    v2 Ptr GLuint
    v3 GLuint
    v4 Ptr GLuint
    v5 Ptr GLuint
    v6

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

    -- glSignalSemaphoreui64NVX ----------------------------------------------------

    glSignalSemaphoreui64NVX
      :: MonadIO m
      => GLuint -- ^ @signalGpu@.
      -> GLsizei -- ^ @fenceObjectCount@.
      -> Ptr GLuint -- ^ @semaphoreArray@ pointing to @fenceObjectCount@ elements of type @GLuint@.
      -> Ptr GLuint64 -- ^ @fenceValueArray@ pointing to @fenceObjectCount@ elements of type @GLuint64@.
      -> m ()
    glSignalSemaphoreui64NVX :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> Ptr GLuint -> Ptr GLuint64 -> m ()
    glSignalSemaphoreui64NVX GLuint
    v1 GLint
    v2 Ptr GLuint
    v3 Ptr GLuint64
    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 -> GLint -> Ptr GLuint -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLint -> Ptr GLuint -> Ptr GLuint64 -> IO ()
    dyn750 FunPtr (GLuint -> GLint -> Ptr GLuint -> Ptr GLuint64 -> IO ())
    ptr_glSignalSemaphoreui64NVX GLuint
    v1 GLint
    v2 Ptr GLuint
    v3 Ptr GLuint64
    v4

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

    -- glSignalVkFenceNV -----------------------------------------------------------

    glSignalVkFenceNV
      :: MonadIO m
      => GLuint64 -- ^ @vkFence@.
      -> m ()
    glSignalVkFenceNV :: forall (m :: * -> *). MonadIO m => GLuint64 -> m ()
    glSignalVkFenceNV GLuint64
    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 (GLuint64 -> IO ()) -> GLuint64 -> IO ()
    dyn517 FunPtr (GLuint64 -> IO ())
    ptr_glSignalVkFenceNV GLuint64
    v1

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

    -- glSignalVkSemaphoreNV -------------------------------------------------------

    glSignalVkSemaphoreNV
      :: MonadIO m
      => GLuint64 -- ^ @vkSemaphore@.
      -> m ()
    glSignalVkSemaphoreNV :: forall (m :: * -> *). MonadIO m => GLuint64 -> m ()
    glSignalVkSemaphoreNV GLuint64
    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 (GLuint64 -> IO ()) -> GLuint64 -> IO ()
    dyn517 FunPtr (GLuint64 -> IO ())
    ptr_glSignalVkSemaphoreNV GLuint64
    v1

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

    -- glSpecializeShader ----------------------------------------------------------

    glSpecializeShader
      :: MonadIO m
      => GLuint -- ^ @shader@.
      -> Ptr GLchar -- ^ @pEntryPoint@.
      -> GLuint -- ^ @numSpecializationConstants@.
      -> Ptr GLuint -- ^ @pConstantIndex@.
      -> Ptr GLuint -- ^ @pConstantValue@.
      -> m ()
    glSpecializeShader :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
    glSpecializeShader GLuint
    v1 Ptr GLchar
    v2 GLuint
    v3 Ptr GLuint
    v4 Ptr 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
       -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
    -> GLuint
    -> Ptr GLchar
    -> GLuint
    -> Ptr GLuint
    -> Ptr GLuint
    -> IO ()
    dyn751 FunPtr
      (GLuint
       -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
    ptr_glSpecializeShader GLuint
    v1 Ptr GLchar
    v2 GLuint
    v3 Ptr GLuint
    v4 Ptr GLuint
    v5

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

    -- glSpecializeShaderARB -------------------------------------------------------

    -- | This command is an alias for 'glSpecializeShader'.
    glSpecializeShaderARB
      :: MonadIO m
      => GLuint -- ^ @shader@.
      -> Ptr GLchar -- ^ @pEntryPoint@.
      -> GLuint -- ^ @numSpecializationConstants@.
      -> Ptr GLuint -- ^ @pConstantIndex@.
      -> Ptr GLuint -- ^ @pConstantValue@.
      -> m ()
    glSpecializeShaderARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
    glSpecializeShaderARB GLuint
    v1 Ptr GLchar
    v2 GLuint
    v3 Ptr GLuint
    v4 Ptr 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
       -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
    -> GLuint
    -> Ptr GLchar
    -> GLuint
    -> Ptr GLuint
    -> Ptr GLuint
    -> IO ()
    dyn751 FunPtr
      (GLuint
       -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
    ptr_glSpecializeShaderARB GLuint
    v1 Ptr GLchar
    v2 GLuint
    v3 Ptr GLuint
    v4 Ptr GLuint
    v5

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

    -- glSpriteParameterfSGIX ------------------------------------------------------

    glSpriteParameterfSGIX
      :: MonadIO m
      => GLenum -- ^ @pname@ of type [SpriteParameterNameSGIX](Graphics-GL-Groups.html#SpriteParameterNameSGIX).
      -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
      -> m ()
    glSpriteParameterfSGIX :: forall (m :: * -> *). MonadIO m => GLuint -> GLfloat -> m ()
    glSpriteParameterfSGIX GLuint
    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 (GLuint -> GLfloat -> IO ()) -> GLuint -> GLfloat -> IO ()
    dyn0 FunPtr (GLuint -> GLfloat -> IO ())
    ptr_glSpriteParameterfSGIX GLuint
    v1 GLfloat
    v2

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

    -- glSpriteParameterfvSGIX -----------------------------------------------------

    glSpriteParameterfvSGIX
      :: MonadIO m
      => GLenum -- ^ @pname@ of type [SpriteParameterNameSGIX](Graphics-GL-Groups.html#SpriteParameterNameSGIX).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
      -> m ()
    glSpriteParameterfvSGIX :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfloat -> m ()
    glSpriteParameterfvSGIX GLuint
    v1 Ptr GLfloat
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> Ptr GLfloat -> IO ())
    -> GLuint -> Ptr GLfloat -> IO ()
    dyn101 FunPtr (GLuint -> Ptr GLfloat -> IO ())
    ptr_glSpriteParameterfvSGIX GLuint
    v1 Ptr GLfloat
    v2

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

    -- glSpriteParameteriSGIX ------------------------------------------------------

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

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

    -- glSpriteParameterivSGIX -----------------------------------------------------

    glSpriteParameterivSGIX
      :: MonadIO m
      => GLenum -- ^ @pname@ of type [SpriteParameterNameSGIX](Graphics-GL-Groups.html#SpriteParameterNameSGIX).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
      -> m ()
    glSpriteParameterivSGIX :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLint -> m ()
    glSpriteParameterivSGIX GLuint
    v1 Ptr GLint
    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 GLint -> IO ())
    -> GLuint -> Ptr GLint -> IO ()
    dyn143 FunPtr (GLuint -> Ptr GLint -> IO ())
    ptr_glSpriteParameterivSGIX GLuint
    v1 Ptr GLint
    v2

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

    -- glStartInstrumentsSGIX ------------------------------------------------------

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

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

    -- glStartTilingQCOM -----------------------------------------------------------

    glStartTilingQCOM
      :: MonadIO m
      => GLuint -- ^ @x@.
      -> GLuint -- ^ @y@.
      -> GLuint -- ^ @width@.
      -> GLuint -- ^ @height@.
      -> GLbitfield -- ^ @preserveMask@ of type [BufferBitQCOM](Graphics-GL-Groups.html#BufferBitQCOM).
      -> m ()
    glStartTilingQCOM :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
    glStartTilingQCOM GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn752 FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glStartTilingQCOM GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5

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

    -- glStateCaptureNV ------------------------------------------------------------

    glStateCaptureNV
      :: MonadIO m
      => GLuint -- ^ @state@.
      -> GLenum -- ^ @mode@.
      -> m ()
    glStateCaptureNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glStateCaptureNV 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_glStateCaptureNV GLuint
    v1 GLuint
    v2

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

    -- glStencilClearTagEXT --------------------------------------------------------

    glStencilClearTagEXT
      :: MonadIO m
      => GLsizei -- ^ @stencilTagBits@.
      -> GLuint -- ^ @stencilClearTag@.
      -> m ()
    glStencilClearTagEXT :: forall (m :: * -> *). MonadIO m => GLint -> GLuint -> m ()
    glStencilClearTagEXT GLint
    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 (GLint -> GLuint -> IO ()) -> GLint -> GLuint -> IO ()
    dyn753 FunPtr (GLint -> GLuint -> IO ())
    ptr_glStencilClearTagEXT GLint
    v1 GLuint
    v2

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

    -- glStencilFillPathInstancedNV ------------------------------------------------

    glStencilFillPathInstancedNV
      :: MonadIO m
      => GLsizei -- ^ @numPaths@.
      -> GLenum -- ^ @pathNameType@ of type [PathElementType](Graphics-GL-Groups.html#PathElementType).
      -> Ptr a -- ^ @paths@ pointing to @COMPSIZE(numPaths,pathNameType,paths)@ elements of type @PathElement@.
      -> GLuint -- ^ @pathBase@ of type @Path@.
      -> GLenum -- ^ @fillMode@ of type [PathFillMode](Graphics-GL-Groups.html#PathFillMode).
      -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
      -> GLenum -- ^ @transformType@ of type [PathTransformType](Graphics-GL-Groups.html#PathTransformType).
      -> Ptr GLfloat -- ^ @transformValues@ pointing to @COMPSIZE(numPaths,transformType)@ elements of type @GLfloat@.
      -> m ()
    glStencilFillPathInstancedNV :: forall (m :: * -> *) a.
    MonadIO m =>
    GLint
    -> GLuint
    -> Ptr a
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLuint
    -> Ptr GLfloat
    -> m ()
    glStencilFillPathInstancedNV GLint
    v1 GLuint
    v2 Ptr a
    v3 GLuint
    v4 GLuint
    v5 GLuint
    v6 GLuint
    v7 Ptr GLfloat
    v8 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLint
       -> GLuint
       -> Ptr a
       -> GLuint
       -> GLuint
       -> GLuint
       -> GLuint
       -> Ptr GLfloat
       -> IO ())
    -> GLint
    -> GLuint
    -> Ptr a
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLuint
    -> Ptr GLfloat
    -> IO ()
    forall a.
    FunPtr
      (GLint
       -> GLuint
       -> Ptr a
       -> GLuint
       -> GLuint
       -> GLuint
       -> GLuint
       -> Ptr GLfloat
       -> IO ())
    -> GLint
    -> GLuint
    -> Ptr a
    -> GLuint
    -> GLuint
    -> GLuint
    -> GLuint
    -> Ptr GLfloat
    -> IO ()
    dyn754 FunPtr
      (GLint
       -> GLuint
       -> Ptr a
       -> GLuint
       -> GLuint
       -> GLuint
       -> GLuint
       -> Ptr GLfloat
       -> IO ())
    forall a.
    FunPtr
      (GLint
       -> GLuint
       -> Ptr a
       -> GLuint
       -> GLuint
       -> GLuint
       -> GLuint
       -> Ptr GLfloat
       -> IO ())
    ptr_glStencilFillPathInstancedNV GLint
    v1 GLuint
    v2 Ptr a
    v3 GLuint
    v4 GLuint
    v5 GLuint
    v6 GLuint
    v7 Ptr GLfloat
    v8

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

    -- glStencilFillPathNV ---------------------------------------------------------

    glStencilFillPathNV
      :: MonadIO m
      => GLuint -- ^ @path@ of type @Path@.
      -> GLenum -- ^ @fillMode@ of type [PathFillMode](Graphics-GL-Groups.html#PathFillMode).
      -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
      -> m ()
    glStencilFillPathNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glStencilFillPathNV 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 ()
    dyn755 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glStencilFillPathNV GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glStencilFunc ---------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilFunc.xhtml OpenGL 4.x>.
    glStencilFunc
      :: MonadIO m
      => GLenum -- ^ @func@ of type [StencilFunction](Graphics-GL-Groups.html#StencilFunction).
      -> GLint -- ^ @ref@ of type @StencilValue@.
      -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
      -> m ()
    glStencilFunc :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLuint -> m ()
    glStencilFunc GLuint
    v1 GLint
    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 -> GLint -> GLuint -> IO ())
    -> GLuint -> GLint -> GLuint -> IO ()
    dyn643 FunPtr (GLuint -> GLint -> GLuint -> IO ())
    ptr_glStencilFunc GLuint
    v1 GLint
    v2 GLuint
    v3

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

    -- glStencilFuncSeparate -------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFuncSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilFuncSeparate.xhtml OpenGL 4.x>.
    glStencilFuncSeparate
      :: MonadIO m
      => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
      -> GLenum -- ^ @func@ of type [StencilFunction](Graphics-GL-Groups.html#StencilFunction).
      -> GLint -- ^ @ref@ of type @StencilValue@.
      -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
      -> m ()
    glStencilFuncSeparate :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLint -> GLuint -> m ()
    glStencilFuncSeparate GLuint
    v1 GLuint
    v2 GLint
    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 -> GLuint -> GLint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLint -> GLuint -> IO ()
    dyn756 FunPtr (GLuint -> GLuint -> GLint -> GLuint -> IO ())
    ptr_glStencilFuncSeparate GLuint
    v1 GLuint
    v2 GLint
    v3 GLuint
    v4

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

    -- glStencilFuncSeparateATI ----------------------------------------------------

    glStencilFuncSeparateATI
      :: MonadIO m
      => GLenum -- ^ @frontfunc@ of type [StencilFunction](Graphics-GL-Groups.html#StencilFunction).
      -> GLenum -- ^ @backfunc@ of type [StencilFunction](Graphics-GL-Groups.html#StencilFunction).
      -> GLint -- ^ @ref@ of type @ClampedStencilValue@.
      -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
      -> m ()
    glStencilFuncSeparateATI :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLint -> GLuint -> m ()
    glStencilFuncSeparateATI GLuint
    v1 GLuint
    v2 GLint
    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 -> GLuint -> GLint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLint -> GLuint -> IO ()
    dyn756 FunPtr (GLuint -> GLuint -> GLint -> GLuint -> IO ())
    ptr_glStencilFuncSeparateATI GLuint
    v1 GLuint
    v2 GLint
    v3 GLuint
    v4

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

    -- glStencilMask ---------------------------------------------------------------

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

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

    -- glStencilMaskSeparate -------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMaskSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilMaskSeparate.xhtml OpenGL 4.x>.
    glStencilMaskSeparate
      :: MonadIO m
      => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
      -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
      -> m ()
    glStencilMaskSeparate :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glStencilMaskSeparate 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_glStencilMaskSeparate GLuint
    v1 GLuint
    v2

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

    -- glStencilOp -----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilOp.xhtml OpenGL 4.x>.
    glStencilOp
      :: MonadIO m
      => GLenum -- ^ @fail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
      -> GLenum -- ^ @zfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
      -> GLenum -- ^ @zpass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
      -> m ()
    glStencilOp :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glStencilOp 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 ()
    dyn757 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glStencilOp GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glStencilOpSeparate ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOpSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilOpSeparate.xhtml OpenGL 4.x>.
    glStencilOpSeparate
      :: MonadIO m
      => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
      -> GLenum -- ^ @sfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
      -> GLenum -- ^ @dpfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
      -> GLenum -- ^ @dppass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
      -> m ()
    glStencilOpSeparate :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> m ()
    glStencilOpSeparate GLuint
    v1 GLuint
    v2 GLuint
    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 -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn56 FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glStencilOpSeparate GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4

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

    -- glStencilOpSeparateATI ------------------------------------------------------

    -- | This command is an alias for 'glStencilOpSeparate'.
    glStencilOpSeparateATI
      :: MonadIO m
      => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
      -> GLenum -- ^ @sfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
      -> GLenum -- ^ @dpfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
      -> GLenum -- ^ @dppass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
      -> m ()
    glStencilOpSeparateATI :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> m ()
    glStencilOpSeparateATI GLuint
    v1 GLuint
    v2 GLuint
    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 -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn56 FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glStencilOpSeparateATI GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4

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