    {-# OPTIONS_HADDOCK hide #-}
    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.GL.Functions.F21
    -- 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.F21 (
      glProgramNamedParameter4fNV,
      glProgramNamedParameter4fvNV,
      glProgramParameter4dNV,
      glProgramParameter4dvNV,
      glProgramParameter4fNV,
      glProgramParameter4fvNV,
      glProgramParameteri,
      glProgramParameteriARB,
      glProgramParameteriEXT,
      glProgramParameters4dvNV,
      glProgramParameters4fvNV,
      glProgramPathFragmentInputGenNV,
      glProgramStringARB,
      glProgramSubroutineParametersuivNV,
      glProgramUniform1d,
      glProgramUniform1dEXT,
      glProgramUniform1dv,
      glProgramUniform1dvEXT,
      glProgramUniform1f,
      glProgramUniform1fEXT,
      glProgramUniform1fv,
      glProgramUniform1fvEXT,
      glProgramUniform1i,
      glProgramUniform1i64ARB,
      glProgramUniform1i64NV,
      glProgramUniform1i64vARB,
      glProgramUniform1i64vNV,
      glProgramUniform1iEXT,
      glProgramUniform1iv,
      glProgramUniform1ivEXT,
      glProgramUniform1ui,
      glProgramUniform1ui64ARB,
      glProgramUniform1ui64NV,
      glProgramUniform1ui64vARB,
      glProgramUniform1ui64vNV,
      glProgramUniform1uiEXT,
      glProgramUniform1uiv,
      glProgramUniform1uivEXT,
      glProgramUniform2d,
      glProgramUniform2dEXT,
      glProgramUniform2dv,
      glProgramUniform2dvEXT,
      glProgramUniform2f,
      glProgramUniform2fEXT,
      glProgramUniform2fv,
      glProgramUniform2fvEXT,
      glProgramUniform2i,
      glProgramUniform2i64ARB,
      glProgramUniform2i64NV,
      glProgramUniform2i64vARB,
      glProgramUniform2i64vNV,
      glProgramUniform2iEXT,
      glProgramUniform2iv,
      glProgramUniform2ivEXT,
      glProgramUniform2ui,
      glProgramUniform2ui64ARB,
      glProgramUniform2ui64NV,
      glProgramUniform2ui64vARB,
      glProgramUniform2ui64vNV,
      glProgramUniform2uiEXT,
      glProgramUniform2uiv,
      glProgramUniform2uivEXT,
      glProgramUniform3d,
      glProgramUniform3dEXT,
      glProgramUniform3dv,
      glProgramUniform3dvEXT,
      glProgramUniform3f,
      glProgramUniform3fEXT,
      glProgramUniform3fv,
      glProgramUniform3fvEXT,
      glProgramUniform3i,
      glProgramUniform3i64ARB,
      glProgramUniform3i64NV,
      glProgramUniform3i64vARB,
      glProgramUniform3i64vNV,
      glProgramUniform3iEXT,
      glProgramUniform3iv,
      glProgramUniform3ivEXT,
      glProgramUniform3ui,
      glProgramUniform3ui64ARB,
      glProgramUniform3ui64NV,
      glProgramUniform3ui64vARB,
      glProgramUniform3ui64vNV,
      glProgramUniform3uiEXT,
      glProgramUniform3uiv,
      glProgramUniform3uivEXT,
      glProgramUniform4d,
      glProgramUniform4dEXT,
      glProgramUniform4dv,
      glProgramUniform4dvEXT,
      glProgramUniform4f,
      glProgramUniform4fEXT,
      glProgramUniform4fv,
      glProgramUniform4fvEXT,
      glProgramUniform4i,
      glProgramUniform4i64ARB,
      glProgramUniform4i64NV,
      glProgramUniform4i64vARB,
      glProgramUniform4i64vNV,
      glProgramUniform4iEXT
    ) where

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

    -- glProgramNamedParameter4fNV -------------------------------------------------

    -- | The vector equivalent of this command is 'glProgramNamedParameter4fvNV'.
    glProgramNamedParameter4fNV
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLsizei -- ^ @len@.
      -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
      -> GLfloat -- ^ @x@.
      -> GLfloat -- ^ @y@.
      -> GLfloat -- ^ @z@.
      -> GLfloat -- ^ @w@.
      -> m ()
    glProgramNamedParameter4fNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLsizei
    -> Ptr GLubyte
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> m ()
    glProgramNamedParameter4fNV GLuint
    v1 GLsizei
    v2 Ptr GLubyte
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    v6 GLfloat
    v7 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLsizei
       -> Ptr GLubyte
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> IO ())
    -> GLuint
    -> GLsizei
    -> Ptr GLubyte
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> IO ()
    dyn666 FunPtr
      (GLuint
       -> GLsizei
       -> Ptr GLubyte
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> GLfloat
       -> IO ())
    ptr_glProgramNamedParameter4fNV GLuint
    v1 GLsizei
    v2 Ptr GLubyte
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    v6 GLfloat
    v7

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

    -- glProgramNamedParameter4fvNV ------------------------------------------------

    glProgramNamedParameter4fvNV
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLsizei -- ^ @len@.
      -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
      -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glProgramNamedParameter4fvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()
    glProgramNamedParameter4fvNV GLuint
    v1 GLsizei
    v2 Ptr GLubyte
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ()
    dyn411 FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
    ptr_glProgramNamedParameter4fvNV GLuint
    v1 GLsizei
    v2 Ptr GLubyte
    v3 Ptr GLfloat
    v4

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

    -- glProgramParameter4dNV ------------------------------------------------------

    -- | The vector equivalent of this command is 'glProgramParameter4dvNV'.
    glProgramParameter4dNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @index@.
      -> GLdouble -- ^ @x@.
      -> GLdouble -- ^ @y@.
      -> GLdouble -- ^ @z@.
      -> GLdouble -- ^ @w@.
      -> m ()
    glProgramParameter4dNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
    glProgramParameter4dNV GLuint
    v1 GLuint
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5 GLdouble
    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 -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLuint
    -> GLuint
    -> GLdouble
    -> GLdouble
    -> GLdouble
    -> GLdouble
    -> IO ()
    dyn661 FunPtr
      (GLuint
       -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glProgramParameter4dNV GLuint
    v1 GLuint
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5 GLdouble
    v6

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

    -- glProgramParameter4dvNV -----------------------------------------------------

    glProgramParameter4dvNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @index@.
      -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @GLdouble@.
      -> m ()
    glProgramParameter4dvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLdouble -> m ()
    glProgramParameter4dvNV GLuint
    v1 GLuint
    v2 Ptr 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 (GLuint -> GLuint -> Ptr GLdouble -> IO ())
    -> GLuint -> GLuint -> Ptr GLdouble -> IO ()
    dyn344 FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
    ptr_glProgramParameter4dvNV GLuint
    v1 GLuint
    v2 Ptr GLdouble
    v3

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

    -- glProgramParameter4fNV ------------------------------------------------------

    -- | The vector equivalent of this command is 'glProgramParameter4fvNV'.
    glProgramParameter4fNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @index@.
      -> GLfloat -- ^ @x@.
      -> GLfloat -- ^ @y@.
      -> GLfloat -- ^ @z@.
      -> GLfloat -- ^ @w@.
      -> m ()
    glProgramParameter4fNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
    glProgramParameter4fNV GLuint
    v1 GLuint
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    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 -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLuint
    -> GLuint
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> IO ()
    dyn662 FunPtr
      (GLuint
       -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glProgramParameter4fNV GLuint
    v1 GLuint
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    v6

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

    -- glProgramParameter4fvNV -----------------------------------------------------

    glProgramParameter4fvNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @index@.
      -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glProgramParameter4fvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> Ptr GLfloat -> m ()
    glProgramParameter4fvNV 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_glProgramParameter4fvNV GLuint
    v1 GLuint
    v2 Ptr GLfloat
    v3

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

    -- glProgramParameteri ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramParameter.xhtml OpenGL 4.x>.
    glProgramParameteri
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @pname@ of type [ProgramParameterPName](Graphics-GL-Groups.html#ProgramParameterPName).
      -> GLint -- ^ @value@.
      -> m ()
    glProgramParameteri :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> m ()
    glProgramParameteri GLuint
    v1 GLuint
    v2 GLsizei
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLsizei -> IO ())
    -> GLuint -> GLuint -> GLsizei -> IO ()
    dyn491 FunPtr (GLuint -> GLuint -> GLsizei -> IO ())
    ptr_glProgramParameteri GLuint
    v1 GLuint
    v2 GLsizei
    v3

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

    -- glProgramParameteriARB ------------------------------------------------------

    -- | This command is an alias for 'glProgramParameteri'.
    glProgramParameteriARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @pname@ of type [ProgramParameterPName](Graphics-GL-Groups.html#ProgramParameterPName).
      -> GLint -- ^ @value@.
      -> m ()
    glProgramParameteriARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> m ()
    glProgramParameteriARB GLuint
    v1 GLuint
    v2 GLsizei
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLsizei -> IO ())
    -> GLuint -> GLuint -> GLsizei -> IO ()
    dyn491 FunPtr (GLuint -> GLuint -> GLsizei -> IO ())
    ptr_glProgramParameteriARB GLuint
    v1 GLuint
    v2 GLsizei
    v3

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

    -- glProgramParameteriEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramParameteri'.
    glProgramParameteriEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @pname@ of type [ProgramParameterPName](Graphics-GL-Groups.html#ProgramParameterPName).
      -> GLint -- ^ @value@.
      -> m ()
    glProgramParameteriEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> m ()
    glProgramParameteriEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLsizei -> IO ())
    -> GLuint -> GLuint -> GLsizei -> IO ()
    dyn491 FunPtr (GLuint -> GLuint -> GLsizei -> IO ())
    ptr_glProgramParameteriEXT GLuint
    v1 GLuint
    v2 GLsizei
    v3

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

    -- glProgramParameters4dvNV ----------------------------------------------------

    glProgramParameters4dvNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @v@ pointing to @count*4@ elements of type @GLdouble@.
      -> m ()
    glProgramParameters4dvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
    glProgramParameters4dvNV GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()
    dyn667 FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
    ptr_glProgramParameters4dvNV GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLdouble
    v4

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

    -- glProgramParameters4fvNV ----------------------------------------------------

    glProgramParameters4fvNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @v@ pointing to @count*4@ elements of type @GLfloat@.
      -> m ()
    glProgramParameters4fvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
    glProgramParameters4fvNV GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
    dyn297 FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramParameters4fvNV GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr GLfloat
    v4

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

    -- glProgramPathFragmentInputGenNV ---------------------------------------------

    glProgramPathFragmentInputGenNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLenum -- ^ @genMode@.
      -> GLint -- ^ @components@.
      -> Ptr GLfloat -- ^ @coeffs@.
      -> m ()
    glProgramPathFragmentInputGenNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
    glProgramPathFragmentInputGenNV GLuint
    v1 GLsizei
    v2 GLuint
    v3 GLsizei
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
    dyn668 FunPtr
      (GLuint -> GLsizei -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramPathFragmentInputGenNV GLuint
    v1 GLsizei
    v2 GLuint
    v3 GLsizei
    v4 Ptr GLfloat
    v5

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

    -- glProgramStringARB ----------------------------------------------------------

    glProgramStringARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLenum -- ^ @format@ of type [ProgramFormat](Graphics-GL-Groups.html#ProgramFormat).
      -> GLsizei -- ^ @len@.
      -> Ptr a -- ^ @string@ pointing to @len@ elements of type @a@.
      -> m ()
    glProgramStringARB :: forall (m :: * -> *) a.
    MonadIO m =>
    GLuint -> GLuint -> GLsizei -> Ptr a -> m ()
    glProgramStringARB GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr a
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr a -> IO ()
    forall a.
    FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    -> GLuint -> GLuint -> GLsizei -> Ptr a -> IO ()
    dyn669 FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    forall a. FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> IO ())
    ptr_glProgramStringARB GLuint
    v1 GLuint
    v2 GLsizei
    v3 Ptr a
    v4

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

    -- glProgramSubroutineParametersuivNV ------------------------------------------

    glProgramSubroutineParametersuivNV
      :: MonadIO m
      => GLenum -- ^ @target@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @params@ pointing to @count@ elements of type @GLuint@.
      -> m ()
    glProgramSubroutineParametersuivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> Ptr GLuint -> m ()
    glProgramSubroutineParametersuivNV GLuint
    v1 GLsizei
    v2 Ptr GLuint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
    dyn204 FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glProgramSubroutineParametersuivNV GLuint
    v1 GLsizei
    v2 Ptr GLuint
    v3

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

    -- glProgramUniform1d ----------------------------------------------------------

    glProgramUniform1d
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLdouble -- ^ @v0@.
      -> m ()
    glProgramUniform1d :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLdouble -> m ()
    glProgramUniform1d GLuint
    v1 GLsizei
    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 (GLuint -> GLsizei -> GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLdouble -> IO ()
    dyn670 FunPtr (GLuint -> GLsizei -> GLdouble -> IO ())
    ptr_glProgramUniform1d GLuint
    v1 GLsizei
    v2 GLdouble
    v3

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

    -- glProgramUniform1dEXT -------------------------------------------------------

    glProgramUniform1dEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLdouble -- ^ @x@.
      -> m ()
    glProgramUniform1dEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLdouble -> m ()
    glProgramUniform1dEXT GLuint
    v1 GLsizei
    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 (GLuint -> GLsizei -> GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLdouble -> IO ()
    dyn670 FunPtr (GLuint -> GLsizei -> GLdouble -> IO ())
    ptr_glProgramUniform1dEXT GLuint
    v1 GLsizei
    v2 GLdouble
    v3

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

    -- glProgramUniform1dv ---------------------------------------------------------

    glProgramUniform1dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count@ elements of type @GLdouble@.
      -> m ()
    glProgramUniform1dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> m ()
    glProgramUniform1dv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ()
    dyn478 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    ptr_glProgramUniform1dv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4

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

    -- glProgramUniform1dvEXT ------------------------------------------------------

    glProgramUniform1dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count@ elements of type @GLdouble@.
      -> m ()
    glProgramUniform1dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> m ()
    glProgramUniform1dvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ()
    dyn478 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    ptr_glProgramUniform1dvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4

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

    -- glProgramUniform1f ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform1f
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> m ()
    glProgramUniform1f :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLfloat -> m ()
    glProgramUniform1f GLuint
    v1 GLsizei
    v2 GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLfloat -> IO ()
    dyn671 FunPtr (GLuint -> GLsizei -> GLfloat -> IO ())
    ptr_glProgramUniform1f GLuint
    v1 GLsizei
    v2 GLfloat
    v3

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

    -- glProgramUniform1fEXT -------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform1f'.
    glProgramUniform1fEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> m ()
    glProgramUniform1fEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLfloat -> m ()
    glProgramUniform1fEXT GLuint
    v1 GLsizei
    v2 GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLfloat -> IO ()
    dyn671 FunPtr (GLuint -> GLsizei -> GLfloat -> IO ())
    ptr_glProgramUniform1fEXT GLuint
    v1 GLsizei
    v2 GLfloat
    v3

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

    -- glProgramUniform1fv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform1fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count@ elements of type @GLfloat@.
      -> m ()
    glProgramUniform1fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
    glProgramUniform1fv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
    dyn479 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramUniform1fv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4

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

    -- glProgramUniform1fvEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform1fv'.
    glProgramUniform1fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count@ elements of type @GLfloat@.
      -> m ()
    glProgramUniform1fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
    glProgramUniform1fvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
    dyn479 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramUniform1fvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4

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

    -- glProgramUniform1i ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform1i
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> m ()
    glProgramUniform1i :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> m ()
    glProgramUniform1i GLuint
    v1 GLsizei
    v2 GLsizei
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> IO ()
    dyn672 FunPtr (GLuint -> GLsizei -> GLsizei -> IO ())
    ptr_glProgramUniform1i GLuint
    v1 GLsizei
    v2 GLsizei
    v3

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

    -- glProgramUniform1i64ARB -----------------------------------------------------

    glProgramUniform1i64ARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint64 -- ^ @x@.
      -> m ()
    glProgramUniform1i64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLint64 -> m ()
    glProgramUniform1i64ARB GLuint
    v1 GLsizei
    v2 GLint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLint64 -> IO ()
    dyn673 FunPtr (GLuint -> GLsizei -> GLint64 -> IO ())
    ptr_glProgramUniform1i64ARB GLuint
    v1 GLsizei
    v2 GLint64
    v3

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

    -- glProgramUniform1i64NV ------------------------------------------------------

    glProgramUniform1i64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint64EXT -- ^ @x@.
      -> m ()
    glProgramUniform1i64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLint64 -> m ()
    glProgramUniform1i64NV GLuint
    v1 GLsizei
    v2 GLint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLint64 -> IO ()
    dyn674 FunPtr (GLuint -> GLsizei -> GLint64 -> IO ())
    ptr_glProgramUniform1i64NV GLuint
    v1 GLsizei
    v2 GLint64
    v3

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

    -- glProgramUniform1i64vARB ----------------------------------------------------

    glProgramUniform1i64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64 -- ^ @value@ pointing to @count@ elements of type @GLint64@.
      -> m ()
    glProgramUniform1i64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> m ()
    glProgramUniform1i64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ()
    dyn480 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    ptr_glProgramUniform1i64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4

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

    -- glProgramUniform1i64vNV -----------------------------------------------------

    glProgramUniform1i64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64EXT -- ^ @value@ pointing to @count@ elements of type @GLint64EXT@.
      -> m ()
    glProgramUniform1i64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> m ()
    glProgramUniform1i64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ()
    dyn675 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    ptr_glProgramUniform1i64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4

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

    -- glProgramUniform1iEXT -------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform1i'.
    glProgramUniform1iEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> m ()
    glProgramUniform1iEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> m ()
    glProgramUniform1iEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> IO ()
    dyn672 FunPtr (GLuint -> GLsizei -> GLsizei -> IO ())
    ptr_glProgramUniform1iEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3

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

    -- glProgramUniform1iv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform1iv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count@ elements of type @GLint@.
      -> m ()
    glProgramUniform1iv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
    glProgramUniform1iv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ()
    dyn481 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    ptr_glProgramUniform1iv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4

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

    -- glProgramUniform1ivEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform1iv'.
    glProgramUniform1ivEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count@ elements of type @GLint@.
      -> m ()
    glProgramUniform1ivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
    glProgramUniform1ivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ()
    dyn481 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    ptr_glProgramUniform1ivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4

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

    -- glProgramUniform1ui ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform1ui
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> m ()
    glProgramUniform1ui :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> m ()
    glProgramUniform1ui GLuint
    v1 GLsizei
    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 -> GLsizei -> GLuint -> IO ())
    -> GLuint -> GLsizei -> GLuint -> IO ()
    dyn676 FunPtr (GLuint -> GLsizei -> GLuint -> IO ())
    ptr_glProgramUniform1ui GLuint
    v1 GLsizei
    v2 GLuint
    v3

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

    -- glProgramUniform1ui64ARB ----------------------------------------------------

    glProgramUniform1ui64ARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64 -- ^ @x@.
      -> m ()
    glProgramUniform1ui64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint64 -> m ()
    glProgramUniform1ui64ARB GLuint
    v1 GLsizei
    v2 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 -> GLsizei -> GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLuint64 -> IO ()
    dyn677 FunPtr (GLuint -> GLsizei -> GLuint64 -> IO ())
    ptr_glProgramUniform1ui64ARB GLuint
    v1 GLsizei
    v2 GLuint64
    v3

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

    -- glProgramUniform1ui64NV -----------------------------------------------------

    glProgramUniform1ui64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64EXT -- ^ @x@.
      -> m ()
    glProgramUniform1ui64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint64 -> m ()
    glProgramUniform1ui64NV GLuint
    v1 GLsizei
    v2 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 -> GLsizei -> GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLuint64 -> IO ()
    dyn678 FunPtr (GLuint -> GLsizei -> GLuint64 -> IO ())
    ptr_glProgramUniform1ui64NV GLuint
    v1 GLsizei
    v2 GLuint64
    v3

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

    -- glProgramUniform1ui64vARB ---------------------------------------------------

    glProgramUniform1ui64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @value@ pointing to @count@ elements of type @GLuint64@.
      -> m ()
    glProgramUniform1ui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> m ()
    glProgramUniform1ui64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    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 -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ()
    dyn482 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    ptr_glProgramUniform1ui64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint64
    v4

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

    -- glProgramUniform1ui64vNV ----------------------------------------------------

    glProgramUniform1ui64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64EXT -- ^ @value@ pointing to @count@ elements of type @GLuint64EXT@.
      -> m ()
    glProgramUniform1ui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> m ()
    glProgramUniform1ui64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    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 -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ()
    dyn679 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    ptr_glProgramUniform1ui64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint64
    v4

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

    -- glProgramUniform1uiEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform1ui'.
    glProgramUniform1uiEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> m ()
    glProgramUniform1uiEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> m ()
    glProgramUniform1uiEXT GLuint
    v1 GLsizei
    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 -> GLsizei -> GLuint -> IO ())
    -> GLuint -> GLsizei -> GLuint -> IO ()
    dyn676 FunPtr (GLuint -> GLsizei -> GLuint -> IO ())
    ptr_glProgramUniform1uiEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3

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

    -- glProgramUniform1uiv --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform1uiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @value@ pointing to @count@ elements of type @GLuint@.
      -> m ()
    glProgramUniform1uiv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> m ()
    glProgramUniform1uiv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ()
    dyn483 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glProgramUniform1uiv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4

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

    -- glProgramUniform1uivEXT -----------------------------------------------------

    -- | This command is an alias for 'glProgramUniform1uiv'.
    glProgramUniform1uivEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @value@ pointing to @count@ elements of type @GLuint@.
      -> m ()
    glProgramUniform1uivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> m ()
    glProgramUniform1uivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ()
    dyn483 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glProgramUniform1uivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4

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

    -- glProgramUniform2d ----------------------------------------------------------

    glProgramUniform2d
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLdouble -- ^ @v0@.
      -> GLdouble -- ^ @v1@.
      -> m ()
    glProgramUniform2d :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLdouble -> GLdouble -> m ()
    glProgramUniform2d GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLdouble -> GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLdouble -> GLdouble -> IO ()
    dyn680 FunPtr (GLuint -> GLsizei -> GLdouble -> GLdouble -> IO ())
    ptr_glProgramUniform2d GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4

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

    -- glProgramUniform2dEXT -------------------------------------------------------

    glProgramUniform2dEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLdouble -- ^ @x@.
      -> GLdouble -- ^ @y@.
      -> m ()
    glProgramUniform2dEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLdouble -> GLdouble -> m ()
    glProgramUniform2dEXT GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLdouble -> GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLdouble -> GLdouble -> IO ()
    dyn680 FunPtr (GLuint -> GLsizei -> GLdouble -> GLdouble -> IO ())
    ptr_glProgramUniform2dEXT GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4

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

    -- glProgramUniform2dv ---------------------------------------------------------

    glProgramUniform2dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count*2@ elements of type @GLdouble@.
      -> m ()
    glProgramUniform2dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> m ()
    glProgramUniform2dv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ()
    dyn478 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    ptr_glProgramUniform2dv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4

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

    -- glProgramUniform2dvEXT ------------------------------------------------------

    glProgramUniform2dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count*2@ elements of type @GLdouble@.
      -> m ()
    glProgramUniform2dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> m ()
    glProgramUniform2dvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ()
    dyn478 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    ptr_glProgramUniform2dvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4

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

    -- glProgramUniform2f ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform2f
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> m ()
    glProgramUniform2f :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLfloat -> GLfloat -> m ()
    glProgramUniform2f GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLfloat -> GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLfloat -> GLfloat -> IO ()
    dyn681 FunPtr (GLuint -> GLsizei -> GLfloat -> GLfloat -> IO ())
    ptr_glProgramUniform2f GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4

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

    -- glProgramUniform2fEXT -------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform2f'.
    glProgramUniform2fEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> m ()
    glProgramUniform2fEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLfloat -> GLfloat -> m ()
    glProgramUniform2fEXT GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLfloat -> GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLfloat -> GLfloat -> IO ()
    dyn681 FunPtr (GLuint -> GLsizei -> GLfloat -> GLfloat -> IO ())
    ptr_glProgramUniform2fEXT GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4

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

    -- glProgramUniform2fv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform2fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*2@ elements of type @GLfloat@.
      -> m ()
    glProgramUniform2fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
    glProgramUniform2fv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
    dyn479 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramUniform2fv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4

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

    -- glProgramUniform2fvEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform2fv'.
    glProgramUniform2fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*2@ elements of type @GLfloat@.
      -> m ()
    glProgramUniform2fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
    glProgramUniform2fvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
    dyn479 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramUniform2fvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4

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

    -- glProgramUniform2i ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform2i
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> m ()
    glProgramUniform2i :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> m ()
    glProgramUniform2i GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn682 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glProgramUniform2i GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4

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

    -- glProgramUniform2i64ARB -----------------------------------------------------

    glProgramUniform2i64ARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint64 -- ^ @x@.
      -> GLint64 -- ^ @y@.
      -> m ()
    glProgramUniform2i64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLint64 -> GLint64 -> m ()
    glProgramUniform2i64ARB GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLint64 -> GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLint64 -> GLint64 -> IO ()
    dyn683 FunPtr (GLuint -> GLsizei -> GLint64 -> GLint64 -> IO ())
    ptr_glProgramUniform2i64ARB GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4

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

    -- glProgramUniform2i64NV ------------------------------------------------------

    glProgramUniform2i64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint64EXT -- ^ @x@.
      -> GLint64EXT -- ^ @y@.
      -> m ()
    glProgramUniform2i64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLint64 -> GLint64 -> m ()
    glProgramUniform2i64NV GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLint64 -> GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLint64 -> GLint64 -> IO ()
    dyn684 FunPtr (GLuint -> GLsizei -> GLint64 -> GLint64 -> IO ())
    ptr_glProgramUniform2i64NV GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4

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

    -- glProgramUniform2i64vARB ----------------------------------------------------

    glProgramUniform2i64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64 -- ^ @value@ pointing to @count*2@ elements of type @GLint64@.
      -> m ()
    glProgramUniform2i64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> m ()
    glProgramUniform2i64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ()
    dyn480 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    ptr_glProgramUniform2i64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4

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

    -- glProgramUniform2i64vNV -----------------------------------------------------

    glProgramUniform2i64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64EXT -- ^ @value@ pointing to @count*2@ elements of type @GLint64EXT@.
      -> m ()
    glProgramUniform2i64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> m ()
    glProgramUniform2i64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ()
    dyn675 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    ptr_glProgramUniform2i64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4

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

    -- glProgramUniform2iEXT -------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform2i'.
    glProgramUniform2iEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> m ()
    glProgramUniform2iEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> m ()
    glProgramUniform2iEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn682 FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glProgramUniform2iEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4

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

    -- glProgramUniform2iv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform2iv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*2@ elements of type @GLint@.
      -> m ()
    glProgramUniform2iv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
    glProgramUniform2iv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ()
    dyn481 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    ptr_glProgramUniform2iv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4

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

    -- glProgramUniform2ivEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform2iv'.
    glProgramUniform2ivEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*2@ elements of type @GLint@.
      -> m ()
    glProgramUniform2ivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
    glProgramUniform2ivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ()
    dyn481 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    ptr_glProgramUniform2ivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4

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

    -- glProgramUniform2ui ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform2ui
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> m ()
    glProgramUniform2ui :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> GLuint -> m ()
    glProgramUniform2ui GLuint
    v1 GLsizei
    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 -> GLsizei -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ()
    dyn685 FunPtr (GLuint -> GLsizei -> GLuint -> GLuint -> IO ())
    ptr_glProgramUniform2ui GLuint
    v1 GLsizei
    v2 GLuint
    v3 GLuint
    v4

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

    -- glProgramUniform2ui64ARB ----------------------------------------------------

    glProgramUniform2ui64ARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64 -- ^ @x@.
      -> GLuint64 -- ^ @y@.
      -> m ()
    glProgramUniform2ui64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint64 -> GLuint64 -> m ()
    glProgramUniform2ui64ARB GLuint
    v1 GLsizei
    v2 GLuint64
    v3 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 -> GLsizei -> GLuint64 -> GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLuint64 -> GLuint64 -> IO ()
    dyn686 FunPtr (GLuint -> GLsizei -> GLuint64 -> GLuint64 -> IO ())
    ptr_glProgramUniform2ui64ARB GLuint
    v1 GLsizei
    v2 GLuint64
    v3 GLuint64
    v4

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

    -- glProgramUniform2ui64NV -----------------------------------------------------

    glProgramUniform2ui64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64EXT -- ^ @x@.
      -> GLuint64EXT -- ^ @y@.
      -> m ()
    glProgramUniform2ui64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint64 -> GLuint64 -> m ()
    glProgramUniform2ui64NV GLuint
    v1 GLsizei
    v2 GLuint64
    v3 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 -> GLsizei -> GLuint64 -> GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLuint64 -> GLuint64 -> IO ()
    dyn687 FunPtr (GLuint -> GLsizei -> GLuint64 -> GLuint64 -> IO ())
    ptr_glProgramUniform2ui64NV GLuint
    v1 GLsizei
    v2 GLuint64
    v3 GLuint64
    v4

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

    -- glProgramUniform2ui64vARB ---------------------------------------------------

    glProgramUniform2ui64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @value@ pointing to @count*2@ elements of type @GLuint64@.
      -> m ()
    glProgramUniform2ui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> m ()
    glProgramUniform2ui64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    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 -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ()
    dyn482 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    ptr_glProgramUniform2ui64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint64
    v4

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

    -- glProgramUniform2ui64vNV ----------------------------------------------------

    glProgramUniform2ui64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*2@ elements of type @GLuint64EXT@.
      -> m ()
    glProgramUniform2ui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> m ()
    glProgramUniform2ui64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    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 -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ()
    dyn679 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    ptr_glProgramUniform2ui64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint64
    v4

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

    -- glProgramUniform2uiEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform2ui'.
    glProgramUniform2uiEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> m ()
    glProgramUniform2uiEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> GLuint -> m ()
    glProgramUniform2uiEXT GLuint
    v1 GLsizei
    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 -> GLsizei -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLsizei -> GLuint -> GLuint -> IO ()
    dyn685 FunPtr (GLuint -> GLsizei -> GLuint -> GLuint -> IO ())
    ptr_glProgramUniform2uiEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 GLuint
    v4

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

    -- glProgramUniform2uiv --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform2uiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @value@ pointing to @count*2@ elements of type @GLuint@.
      -> m ()
    glProgramUniform2uiv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> m ()
    glProgramUniform2uiv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ()
    dyn483 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glProgramUniform2uiv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4

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

    -- glProgramUniform2uivEXT -----------------------------------------------------

    -- | This command is an alias for 'glProgramUniform2uiv'.
    glProgramUniform2uivEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @value@ pointing to @count*2@ elements of type @GLuint@.
      -> m ()
    glProgramUniform2uivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> m ()
    glProgramUniform2uivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ()
    dyn483 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glProgramUniform2uivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4

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

    -- glProgramUniform3d ----------------------------------------------------------

    glProgramUniform3d
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLdouble -- ^ @v0@.
      -> GLdouble -- ^ @v1@.
      -> GLdouble -- ^ @v2@.
      -> m ()
    glProgramUniform3d :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> m ()
    glProgramUniform3d GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn688 FunPtr
      (GLuint -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glProgramUniform3d GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5

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

    -- glProgramUniform3dEXT -------------------------------------------------------

    glProgramUniform3dEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLdouble -- ^ @x@.
      -> GLdouble -- ^ @y@.
      -> GLdouble -- ^ @z@.
      -> m ()
    glProgramUniform3dEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> m ()
    glProgramUniform3dEXT GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn688 FunPtr
      (GLuint -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glProgramUniform3dEXT GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5

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

    -- glProgramUniform3dv ---------------------------------------------------------

    glProgramUniform3dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count*3@ elements of type @GLdouble@.
      -> m ()
    glProgramUniform3dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> m ()
    glProgramUniform3dv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ()
    dyn478 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    ptr_glProgramUniform3dv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4

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

    -- glProgramUniform3dvEXT ------------------------------------------------------

    glProgramUniform3dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count*3@ elements of type @GLdouble@.
      -> m ()
    glProgramUniform3dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> m ()
    glProgramUniform3dvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ()
    dyn478 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    ptr_glProgramUniform3dvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4

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

    -- glProgramUniform3f ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform3f
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> GLfloat -- ^ @v2@.
      -> m ()
    glProgramUniform3f :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> m ()
    glProgramUniform3f GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn689 FunPtr
      (GLuint -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glProgramUniform3f GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5

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

    -- glProgramUniform3fEXT -------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform3f'.
    glProgramUniform3fEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> GLfloat -- ^ @v2@.
      -> m ()
    glProgramUniform3fEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> m ()
    glProgramUniform3fEXT GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn689 FunPtr
      (GLuint -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glProgramUniform3fEXT GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5

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

    -- glProgramUniform3fv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform3fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
      -> m ()
    glProgramUniform3fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
    glProgramUniform3fv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
    dyn479 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramUniform3fv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4

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

    -- glProgramUniform3fvEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform3fv'.
    glProgramUniform3fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
      -> m ()
    glProgramUniform3fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
    glProgramUniform3fvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
    dyn479 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramUniform3fvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4

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

    -- glProgramUniform3i ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform3i
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> GLint -- ^ @v2@.
      -> m ()
    glProgramUniform3i :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
    glProgramUniform3i GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn690 FunPtr
      (GLuint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glProgramUniform3i GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5

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

    -- glProgramUniform3i64ARB -----------------------------------------------------

    glProgramUniform3i64ARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint64 -- ^ @x@.
      -> GLint64 -- ^ @y@.
      -> GLint64 -- ^ @z@.
      -> m ()
    glProgramUniform3i64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> m ()
    glProgramUniform3i64ARB GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> IO ()
    dyn691 FunPtr
      (GLuint -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> IO ())
    ptr_glProgramUniform3i64ARB GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5

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

    -- glProgramUniform3i64NV ------------------------------------------------------

    glProgramUniform3i64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint64EXT -- ^ @x@.
      -> GLint64EXT -- ^ @y@.
      -> GLint64EXT -- ^ @z@.
      -> m ()
    glProgramUniform3i64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> m ()
    glProgramUniform3i64NV GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> IO ()
    dyn692 FunPtr
      (GLuint -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> IO ())
    ptr_glProgramUniform3i64NV GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5

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

    -- glProgramUniform3i64vARB ----------------------------------------------------

    glProgramUniform3i64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64 -- ^ @value@ pointing to @count*3@ elements of type @GLint64@.
      -> m ()
    glProgramUniform3i64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> m ()
    glProgramUniform3i64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ()
    dyn480 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    ptr_glProgramUniform3i64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4

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

    -- glProgramUniform3i64vNV -----------------------------------------------------

    glProgramUniform3i64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64EXT -- ^ @value@ pointing to @count*3@ elements of type @GLint64EXT@.
      -> m ()
    glProgramUniform3i64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> m ()
    glProgramUniform3i64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ()
    dyn675 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    ptr_glProgramUniform3i64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4

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

    -- glProgramUniform3iEXT -------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform3i'.
    glProgramUniform3iEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> GLint -- ^ @v2@.
      -> m ()
    glProgramUniform3iEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
    glProgramUniform3iEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()
    dyn690 FunPtr
      (GLuint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glProgramUniform3iEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5

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

    -- glProgramUniform3iv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform3iv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*3@ elements of type @GLint@.
      -> m ()
    glProgramUniform3iv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
    glProgramUniform3iv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ()
    dyn481 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    ptr_glProgramUniform3iv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4

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

    -- glProgramUniform3ivEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform3iv'.
    glProgramUniform3ivEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*3@ elements of type @GLint@.
      -> m ()
    glProgramUniform3ivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
    glProgramUniform3ivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ()
    dyn481 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
    ptr_glProgramUniform3ivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLsizei
    v4

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

    -- glProgramUniform3ui ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform3ui
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> GLuint -- ^ @v2@.
      -> m ()
    glProgramUniform3ui :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> GLuint -> GLuint -> m ()
    glProgramUniform3ui GLuint
    v1 GLsizei
    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 -> GLsizei -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLsizei -> GLuint -> GLuint -> GLuint -> IO ()
    dyn693 FunPtr (GLuint -> GLsizei -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glProgramUniform3ui GLuint
    v1 GLsizei
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5

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

    -- glProgramUniform3ui64ARB ----------------------------------------------------

    glProgramUniform3ui64ARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64 -- ^ @x@.
      -> GLuint64 -- ^ @y@.
      -> GLuint64 -- ^ @z@.
      -> m ()
    glProgramUniform3ui64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
    glProgramUniform3ui64ARB GLuint
    v1 GLsizei
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
    dyn694 FunPtr
      (GLuint -> GLsizei -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    ptr_glProgramUniform3ui64ARB GLuint
    v1 GLsizei
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5

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

    -- glProgramUniform3ui64NV -----------------------------------------------------

    glProgramUniform3ui64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64EXT -- ^ @x@.
      -> GLuint64EXT -- ^ @y@.
      -> GLuint64EXT -- ^ @z@.
      -> m ()
    glProgramUniform3ui64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
    glProgramUniform3ui64NV GLuint
    v1 GLsizei
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLsizei -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
    dyn695 FunPtr
      (GLuint -> GLsizei -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    ptr_glProgramUniform3ui64NV GLuint
    v1 GLsizei
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5

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

    -- glProgramUniform3ui64vARB ---------------------------------------------------

    glProgramUniform3ui64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @value@ pointing to @count*3@ elements of type @GLuint64@.
      -> m ()
    glProgramUniform3ui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> m ()
    glProgramUniform3ui64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    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 -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ()
    dyn482 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    ptr_glProgramUniform3ui64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint64
    v4

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

    -- glProgramUniform3ui64vNV ----------------------------------------------------

    glProgramUniform3ui64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*3@ elements of type @GLuint64EXT@.
      -> m ()
    glProgramUniform3ui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> m ()
    glProgramUniform3ui64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    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 -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ()
    dyn679 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint64 -> IO ())
    ptr_glProgramUniform3ui64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint64
    v4

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

    -- glProgramUniform3uiEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform3ui'.
    glProgramUniform3uiEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> GLuint -- ^ @v2@.
      -> m ()
    glProgramUniform3uiEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLuint -> GLuint -> GLuint -> m ()
    glProgramUniform3uiEXT GLuint
    v1 GLsizei
    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 -> GLsizei -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLsizei -> GLuint -> GLuint -> GLuint -> IO ()
    dyn693 FunPtr (GLuint -> GLsizei -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glProgramUniform3uiEXT GLuint
    v1 GLsizei
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5

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

    -- glProgramUniform3uiv --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform3uiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @value@ pointing to @count*3@ elements of type @GLuint@.
      -> m ()
    glProgramUniform3uiv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> m ()
    glProgramUniform3uiv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ()
    dyn483 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glProgramUniform3uiv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4

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

    -- glProgramUniform3uivEXT -----------------------------------------------------

    -- | This command is an alias for 'glProgramUniform3uiv'.
    glProgramUniform3uivEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @value@ pointing to @count*3@ elements of type @GLuint@.
      -> m ()
    glProgramUniform3uivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> m ()
    glProgramUniform3uivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ()
    dyn483 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLuint -> IO ())
    ptr_glProgramUniform3uivEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLuint
    v4

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

    -- glProgramUniform4d ----------------------------------------------------------

    glProgramUniform4d
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLdouble -- ^ @v0@.
      -> GLdouble -- ^ @v1@.
      -> GLdouble -- ^ @v2@.
      -> GLdouble -- ^ @v3@.
      -> m ()
    glProgramUniform4d :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
    glProgramUniform4d GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5 GLdouble
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLsizei
       -> GLdouble
       -> GLdouble
       -> GLdouble
       -> GLdouble
       -> IO ())
    -> GLuint
    -> GLsizei
    -> GLdouble
    -> GLdouble
    -> GLdouble
    -> GLdouble
    -> IO ()
    dyn696 FunPtr
      (GLuint
       -> GLsizei
       -> GLdouble
       -> GLdouble
       -> GLdouble
       -> GLdouble
       -> IO ())
    ptr_glProgramUniform4d GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5 GLdouble
    v6

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

    -- glProgramUniform4dEXT -------------------------------------------------------

    glProgramUniform4dEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLdouble -- ^ @x@.
      -> GLdouble -- ^ @y@.
      -> GLdouble -- ^ @z@.
      -> GLdouble -- ^ @w@.
      -> m ()
    glProgramUniform4dEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLsizei -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
    glProgramUniform4dEXT GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5 GLdouble
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLsizei
       -> GLdouble
       -> GLdouble
       -> GLdouble
       -> GLdouble
       -> IO ())
    -> GLuint
    -> GLsizei
    -> GLdouble
    -> GLdouble
    -> GLdouble
    -> GLdouble
    -> IO ()
    dyn696 FunPtr
      (GLuint
       -> GLsizei
       -> GLdouble
       -> GLdouble
       -> GLdouble
       -> GLdouble
       -> IO ())
    ptr_glProgramUniform4dEXT GLuint
    v1 GLsizei
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5 GLdouble
    v6

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

    -- glProgramUniform4dv ---------------------------------------------------------

    glProgramUniform4dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
      -> m ()
    glProgramUniform4dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> m ()
    glProgramUniform4dv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ()
    dyn478 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    ptr_glProgramUniform4dv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4

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

    -- glProgramUniform4dvEXT ------------------------------------------------------

    glProgramUniform4dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
      -> m ()
    glProgramUniform4dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> m ()
    glProgramUniform4dvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ()
    dyn478 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLdouble -> IO ())
    ptr_glProgramUniform4dvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLdouble
    v4

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

    -- glProgramUniform4f ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform4f
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> GLfloat -- ^ @v2@.
      -> GLfloat -- ^ @v3@.
      -> m ()
    glProgramUniform4f :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
    glProgramUniform4f GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLuint
    -> GLsizei
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> IO ()
    dyn697 FunPtr
      (GLuint
       -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glProgramUniform4f GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    v6

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

    -- glProgramUniform4fEXT -------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform4f'.
    glProgramUniform4fEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> GLfloat -- ^ @v2@.
      -> GLfloat -- ^ @v3@.
      -> m ()
    glProgramUniform4fEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
    glProgramUniform4fEXT GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLuint
    -> GLsizei
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> GLfloat
    -> IO ()
    dyn697 FunPtr
      (GLuint
       -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glProgramUniform4fEXT GLuint
    v1 GLsizei
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 GLfloat
    v6

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

    -- glProgramUniform4fv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform4fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
      -> m ()
    glProgramUniform4fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
    glProgramUniform4fv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
    dyn479 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramUniform4fv GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4

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

    -- glProgramUniform4fvEXT ------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform4fv'.
    glProgramUniform4fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
      -> m ()
    glProgramUniform4fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
    glProgramUniform4fvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
    dyn479 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
    ptr_glProgramUniform4fvEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLfloat
    v4

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

    -- glProgramUniform4i ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniform4i
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> GLint -- ^ @v2@.
      -> GLint -- ^ @v3@.
      -> m ()
    glProgramUniform4i :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
    glProgramUniform4i GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5 GLsizei
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> IO ()
    dyn698 FunPtr
      (GLuint
       -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glProgramUniform4i GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5 GLsizei
    v6

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

    -- glProgramUniform4i64ARB -----------------------------------------------------

    glProgramUniform4i64ARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint64 -- ^ @x@.
      -> GLint64 -- ^ @y@.
      -> GLint64 -- ^ @z@.
      -> GLint64 -- ^ @w@.
      -> m ()
    glProgramUniform4i64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
    glProgramUniform4i64ARB GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5 GLint64
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
    -> GLuint
    -> GLsizei
    -> GLint64
    -> GLint64
    -> GLint64
    -> GLint64
    -> IO ()
    dyn699 FunPtr
      (GLuint
       -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
    ptr_glProgramUniform4i64ARB GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5 GLint64
    v6

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

    -- glProgramUniform4i64NV ------------------------------------------------------

    glProgramUniform4i64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint64EXT -- ^ @x@.
      -> GLint64EXT -- ^ @y@.
      -> GLint64EXT -- ^ @z@.
      -> GLint64EXT -- ^ @w@.
      -> m ()
    glProgramUniform4i64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
    glProgramUniform4i64NV GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5 GLint64
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
    -> GLuint
    -> GLsizei
    -> GLint64
    -> GLint64
    -> GLint64
    -> GLint64
    -> IO ()
    dyn700 FunPtr
      (GLuint
       -> GLsizei -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
    ptr_glProgramUniform4i64NV GLuint
    v1 GLsizei
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5 GLint64
    v6

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

    -- glProgramUniform4i64vARB ----------------------------------------------------

    glProgramUniform4i64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64 -- ^ @value@ pointing to @count*4@ elements of type @GLint64@.
      -> m ()
    glProgramUniform4i64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> m ()
    glProgramUniform4i64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ()
    dyn480 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    ptr_glProgramUniform4i64vARB GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4

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

    -- glProgramUniform4i64vNV -----------------------------------------------------

    glProgramUniform4i64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64EXT -- ^ @value@ pointing to @count*4@ elements of type @GLint64EXT@.
      -> m ()
    glProgramUniform4i64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> m ()
    glProgramUniform4i64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    -> GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ()
    dyn675 FunPtr (GLuint -> GLsizei -> GLsizei -> Ptr GLint64 -> IO ())
    ptr_glProgramUniform4i64vNV GLuint
    v1 GLsizei
    v2 GLsizei
    v3 Ptr GLint64
    v4

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

    -- glProgramUniform4iEXT -------------------------------------------------------

    -- | This command is an alias for 'glProgramUniform4i'.
    glProgramUniform4iEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> GLint -- ^ @v2@.
      -> GLint -- ^ @v3@.
      -> m ()
    glProgramUniform4iEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
    glProgramUniform4iEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5 GLsizei
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    -> GLuint
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> GLsizei
    -> IO ()
    dyn698 FunPtr
      (GLuint
       -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
    ptr_glProgramUniform4iEXT GLuint
    v1 GLsizei
    v2 GLsizei
    v3 GLsizei
    v4 GLsizei
    v5 GLsizei
    v6

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