    {-# OPTIONS_HADDOCK hide #-}
    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.GL.Functions.F28
    -- 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.F28 (
      glUniform2iv,
      glUniform2ivARB,
      glUniform2ui,
      glUniform2ui64ARB,
      glUniform2ui64NV,
      glUniform2ui64vARB,
      glUniform2ui64vNV,
      glUniform2uiEXT,
      glUniform2uiv,
      glUniform2uivEXT,
      glUniform3d,
      glUniform3dv,
      glUniform3f,
      glUniform3fARB,
      glUniform3fv,
      glUniform3fvARB,
      glUniform3i,
      glUniform3i64ARB,
      glUniform3i64NV,
      glUniform3i64vARB,
      glUniform3i64vNV,
      glUniform3iARB,
      glUniform3iv,
      glUniform3ivARB,
      glUniform3ui,
      glUniform3ui64ARB,
      glUniform3ui64NV,
      glUniform3ui64vARB,
      glUniform3ui64vNV,
      glUniform3uiEXT,
      glUniform3uiv,
      glUniform3uivEXT,
      glUniform4d,
      glUniform4dv,
      glUniform4f,
      glUniform4fARB,
      glUniform4fv,
      glUniform4fvARB,
      glUniform4i,
      glUniform4i64ARB,
      glUniform4i64NV,
      glUniform4i64vARB,
      glUniform4i64vNV,
      glUniform4iARB,
      glUniform4iv,
      glUniform4ivARB,
      glUniform4ui,
      glUniform4ui64ARB,
      glUniform4ui64NV,
      glUniform4ui64vARB,
      glUniform4ui64vNV,
      glUniform4uiEXT,
      glUniform4uiv,
      glUniform4uivEXT,
      glUniformBlockBinding,
      glUniformBufferEXT,
      glUniformHandleui64ARB,
      glUniformHandleui64IMG,
      glUniformHandleui64NV,
      glUniformHandleui64vARB,
      glUniformHandleui64vIMG,
      glUniformHandleui64vNV,
      glUniformMatrix2dv,
      glUniformMatrix2fv,
      glUniformMatrix2fvARB,
      glUniformMatrix2x3dv,
      glUniformMatrix2x3fv,
      glUniformMatrix2x3fvNV,
      glUniformMatrix2x4dv,
      glUniformMatrix2x4fv,
      glUniformMatrix2x4fvNV,
      glUniformMatrix3dv,
      glUniformMatrix3fv,
      glUniformMatrix3fvARB,
      glUniformMatrix3x2dv,
      glUniformMatrix3x2fv,
      glUniformMatrix3x2fvNV,
      glUniformMatrix3x4dv,
      glUniformMatrix3x4fv,
      glUniformMatrix3x4fvNV,
      glUniformMatrix4dv,
      glUniformMatrix4fv,
      glUniformMatrix4fvARB,
      glUniformMatrix4x2dv,
      glUniformMatrix4x2fv,
      glUniformMatrix4x2fvNV,
      glUniformMatrix4x3dv,
      glUniformMatrix4x3fv,
      glUniformMatrix4x3fvNV,
      glUniformSubroutinesuiv,
      glUniformui64NV,
      glUniformui64vNV,
      glUnlockArraysEXT,
      glUnmapBuffer,
      glUnmapBufferARB,
      glUnmapBufferOES,
      glUnmapNamedBuffer,
      glUnmapNamedBufferEXT,
      glUnmapObjectBufferATI,
      glUnmapTexture2DINTEL
    ) where

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

    -- glUniform2iv ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform2iv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*2@ elements of type @GLint@.
      -> m ()
    glUniform2iv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLint -> m ()
    glUniform2iv GLint
    v1 GLint
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    -> GLint -> GLint -> Ptr GLint -> IO ()
    dyn841 FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    ptr_glUniform2iv GLint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glUniform2ivARB -------------------------------------------------------------

    -- | This command is an alias for 'glUniform2iv'.
    glUniform2ivARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*2@ elements of type @GLint@.
      -> m ()
    glUniform2ivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLint -> m ()
    glUniform2ivARB GLint
    v1 GLint
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    -> GLint -> GLint -> Ptr GLint -> IO ()
    dyn841 FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    ptr_glUniform2ivARB GLint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glUniform2ui ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform2ui
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> m ()
    glUniform2ui :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint -> GLuint -> m ()
    glUniform2ui GLint
    v1 GLuint
    v2 GLuint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint -> GLuint -> IO ())
    -> GLint -> GLuint -> GLuint -> IO ()
    dyn850 FunPtr (GLint -> GLuint -> GLuint -> IO ())
    ptr_glUniform2ui GLint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glUniform2ui64ARB -----------------------------------------------------------

    glUniform2ui64ARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64 -- ^ @x@.
      -> GLuint64 -- ^ @y@.
      -> m ()
    glUniform2ui64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint64 -> GLuint64 -> m ()
    glUniform2ui64ARB GLint
    v1 GLuint64
    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 (GLint -> GLuint64 -> GLuint64 -> IO ())
    -> GLint -> GLuint64 -> GLuint64 -> IO ()
    dyn851 FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ())
    ptr_glUniform2ui64ARB GLint
    v1 GLuint64
    v2 GLuint64
    v3

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

    -- glUniform2ui64NV ------------------------------------------------------------

    glUniform2ui64NV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64EXT -- ^ @x@.
      -> GLuint64EXT -- ^ @y@.
      -> m ()
    glUniform2ui64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint64 -> GLuint64 -> m ()
    glUniform2ui64NV GLint
    v1 GLuint64
    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 (GLint -> GLuint64 -> GLuint64 -> IO ())
    -> GLint -> GLuint64 -> GLuint64 -> IO ()
    dyn852 FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ())
    ptr_glUniform2ui64NV GLint
    v1 GLuint64
    v2 GLuint64
    v3

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

    -- glUniform2ui64vARB ----------------------------------------------------------

    glUniform2ui64vARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @value@ pointing to @count*2@ elements of type @GLuint64@.
      -> m ()
    glUniform2ui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniform2ui64vARB GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn845 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniform2ui64vARB GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUniform2ui64vNV -----------------------------------------------------------

    glUniform2ui64vNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*2@ elements of type @GLuint64EXT@.
      -> m ()
    glUniform2ui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniform2ui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn846 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniform2ui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUniform2uiEXT -------------------------------------------------------------

    -- | This command is an alias for 'glUniform2ui'.
    glUniform2uiEXT
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> m ()
    glUniform2uiEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint -> GLuint -> m ()
    glUniform2uiEXT GLint
    v1 GLuint
    v2 GLuint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint -> GLuint -> IO ())
    -> GLint -> GLuint -> GLuint -> IO ()
    dyn850 FunPtr (GLint -> GLuint -> GLuint -> IO ())
    ptr_glUniform2uiEXT GLint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glUniform2uiv ---------------------------------------------------------------

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

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

    -- glUniform2uivEXT ------------------------------------------------------------

    -- | This command is an alias for 'glUniform2uiv'.
    glUniform2uivEXT
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @value@ pointing to @count*2@ elements of type @GLuint@.
      -> m ()
    glUniform2uivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint -> m ()
    glUniform2uivEXT GLint
    v1 GLint
    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 (GLint -> GLint -> Ptr GLuint -> IO ())
    -> GLint -> GLint -> Ptr GLuint -> IO ()
    dyn847 FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
    ptr_glUniform2uivEXT GLint
    v1 GLint
    v2 Ptr GLuint
    v3

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

    -- glUniform3d -----------------------------------------------------------------

    glUniform3d
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLdouble -- ^ @x@.
      -> GLdouble -- ^ @y@.
      -> GLdouble -- ^ @z@.
      -> m ()
    glUniform3d :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
    glUniform3d GLint
    v1 GLdouble
    v2 GLdouble
    v3 GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn853 FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glUniform3d GLint
    v1 GLdouble
    v2 GLdouble
    v3 GLdouble
    v4

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

    -- glUniform3dv ----------------------------------------------------------------

    glUniform3dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count*3@ elements of type @GLdouble@.
      -> m ()
    glUniform3dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLdouble -> m ()
    glUniform3dv GLint
    v1 GLint
    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 (GLint -> GLint -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> Ptr GLdouble -> IO ()
    dyn834 FunPtr (GLint -> GLint -> Ptr GLdouble -> IO ())
    ptr_glUniform3dv GLint
    v1 GLint
    v2 Ptr GLdouble
    v3

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

    -- glUniform3f -----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform3f
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> GLfloat -- ^ @v2@.
      -> m ()
    glUniform3f :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
    glUniform3f GLint
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn854 FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glUniform3f GLint
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4

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

    -- glUniform3fARB --------------------------------------------------------------

    -- | This command is an alias for 'glUniform3f'.
    glUniform3fARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> GLfloat -- ^ @v2@.
      -> m ()
    glUniform3fARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
    glUniform3fARB GLint
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn854 FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glUniform3fARB GLint
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4

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

    -- glUniform3fv ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform3fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
      -> m ()
    glUniform3fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLfloat -> m ()
    glUniform3fv GLint
    v1 GLint
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> Ptr GLfloat -> IO ()
    dyn836 FunPtr (GLint -> GLint -> Ptr GLfloat -> IO ())
    ptr_glUniform3fv GLint
    v1 GLint
    v2 Ptr GLfloat
    v3

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

    -- glUniform3fvARB -------------------------------------------------------------

    -- | This command is an alias for 'glUniform3fv'.
    glUniform3fvARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
      -> m ()
    glUniform3fvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLfloat -> m ()
    glUniform3fvARB GLint
    v1 GLint
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> Ptr GLfloat -> IO ()
    dyn836 FunPtr (GLint -> GLint -> Ptr GLfloat -> IO ())
    ptr_glUniform3fvARB GLint
    v1 GLint
    v2 Ptr GLfloat
    v3

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

    -- glUniform3i -----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform3i
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> GLint -- ^ @v2@.
      -> m ()
    glUniform3i :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLint -> GLint -> m ()
    glUniform3i GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
    -> GLint -> GLint -> GLint -> GLint -> IO ()
    dyn82 FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glUniform3i GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4

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

    -- glUniform3i64ARB ------------------------------------------------------------

    glUniform3i64ARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLint64 -- ^ @x@.
      -> GLint64 -- ^ @y@.
      -> GLint64 -- ^ @z@.
      -> m ()
    glUniform3i64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
    glUniform3i64ARB GLint
    v1 GLint64
    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 (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
    -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()
    dyn855 FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
    ptr_glUniform3i64ARB GLint
    v1 GLint64
    v2 GLint64
    v3 GLint64
    v4

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

    -- glUniform3i64NV -------------------------------------------------------------

    glUniform3i64NV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLint64EXT -- ^ @x@.
      -> GLint64EXT -- ^ @y@.
      -> GLint64EXT -- ^ @z@.
      -> m ()
    glUniform3i64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
    glUniform3i64NV GLint
    v1 GLint64
    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 (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
    -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()
    dyn856 FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
    ptr_glUniform3i64NV GLint
    v1 GLint64
    v2 GLint64
    v3 GLint64
    v4

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

    -- glUniform3i64vARB -----------------------------------------------------------

    glUniform3i64vARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64 -- ^ @value@ pointing to @count*3@ elements of type @GLint64@.
      -> m ()
    glUniform3i64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLint64 -> m ()
    glUniform3i64vARB GLint
    v1 GLint
    v2 Ptr GLint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLint64 -> IO ())
    -> GLint -> GLint -> Ptr GLint64 -> IO ()
    dyn839 FunPtr (GLint -> GLint -> Ptr GLint64 -> IO ())
    ptr_glUniform3i64vARB GLint
    v1 GLint
    v2 Ptr GLint64
    v3

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

    -- glUniform3i64vNV ------------------------------------------------------------

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

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

    -- glUniform3iARB --------------------------------------------------------------

    -- | This command is an alias for 'glUniform3i'.
    glUniform3iARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> GLint -- ^ @v2@.
      -> m ()
    glUniform3iARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLint -> GLint -> m ()
    glUniform3iARB GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
    -> GLint -> GLint -> GLint -> GLint -> IO ()
    dyn82 FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glUniform3iARB GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4

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

    -- glUniform3iv ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform3iv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*3@ elements of type @GLint@.
      -> m ()
    glUniform3iv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLint -> m ()
    glUniform3iv GLint
    v1 GLint
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    -> GLint -> GLint -> Ptr GLint -> IO ()
    dyn841 FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    ptr_glUniform3iv GLint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glUniform3ivARB -------------------------------------------------------------

    -- | This command is an alias for 'glUniform3iv'.
    glUniform3ivARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*3@ elements of type @GLint@.
      -> m ()
    glUniform3ivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLint -> m ()
    glUniform3ivARB GLint
    v1 GLint
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    -> GLint -> GLint -> Ptr GLint -> IO ()
    dyn841 FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    ptr_glUniform3ivARB GLint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glUniform3ui ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform3ui
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> GLuint -- ^ @v2@.
      -> m ()
    glUniform3ui :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint -> GLuint -> GLuint -> m ()
    glUniform3ui GLint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn857 FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glUniform3ui GLint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4

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

    -- glUniform3ui64ARB -----------------------------------------------------------

    glUniform3ui64ARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64 -- ^ @x@.
      -> GLuint64 -- ^ @y@.
      -> GLuint64 -- ^ @z@.
      -> m ()
    glUniform3ui64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
    glUniform3ui64ARB GLint
    v1 GLuint64
    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 (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
    dyn858 FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    ptr_glUniform3ui64ARB GLint
    v1 GLuint64
    v2 GLuint64
    v3 GLuint64
    v4

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

    -- glUniform3ui64NV ------------------------------------------------------------

    glUniform3ui64NV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64EXT -- ^ @x@.
      -> GLuint64EXT -- ^ @y@.
      -> GLuint64EXT -- ^ @z@.
      -> m ()
    glUniform3ui64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
    glUniform3ui64NV GLint
    v1 GLuint64
    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 (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
    dyn859 FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    ptr_glUniform3ui64NV GLint
    v1 GLuint64
    v2 GLuint64
    v3 GLuint64
    v4

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

    -- glUniform3ui64vARB ----------------------------------------------------------

    glUniform3ui64vARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @value@ pointing to @count*3@ elements of type @GLuint64@.
      -> m ()
    glUniform3ui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniform3ui64vARB GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn845 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniform3ui64vARB GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUniform3ui64vNV -----------------------------------------------------------

    glUniform3ui64vNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*3@ elements of type @GLuint64EXT@.
      -> m ()
    glUniform3ui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniform3ui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn846 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniform3ui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUniform3uiEXT -------------------------------------------------------------

    -- | This command is an alias for 'glUniform3ui'.
    glUniform3uiEXT
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> GLuint -- ^ @v2@.
      -> m ()
    glUniform3uiEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint -> GLuint -> GLuint -> m ()
    glUniform3uiEXT GLint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn857 FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glUniform3uiEXT GLint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4

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

    -- glUniform3uiv ---------------------------------------------------------------

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

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

    -- glUniform3uivEXT ------------------------------------------------------------

    -- | This command is an alias for 'glUniform3uiv'.
    glUniform3uivEXT
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @value@ pointing to @count*3@ elements of type @GLuint@.
      -> m ()
    glUniform3uivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint -> m ()
    glUniform3uivEXT GLint
    v1 GLint
    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 (GLint -> GLint -> Ptr GLuint -> IO ())
    -> GLint -> GLint -> Ptr GLuint -> IO ()
    dyn847 FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
    ptr_glUniform3uivEXT GLint
    v1 GLint
    v2 Ptr GLuint
    v3

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

    -- glUniform4d -----------------------------------------------------------------

    glUniform4d
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLdouble -- ^ @x@.
      -> GLdouble -- ^ @y@.
      -> GLdouble -- ^ @z@.
      -> GLdouble -- ^ @w@.
      -> m ()
    glUniform4d :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
    glUniform4d GLint
    v1 GLdouble
    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
      (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn860 FunPtr
      (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glUniform4d GLint
    v1 GLdouble
    v2 GLdouble
    v3 GLdouble
    v4 GLdouble
    v5

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

    -- glUniform4dv ----------------------------------------------------------------

    glUniform4dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
      -> m ()
    glUniform4dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLdouble -> m ()
    glUniform4dv GLint
    v1 GLint
    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 (GLint -> GLint -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> Ptr GLdouble -> IO ()
    dyn834 FunPtr (GLint -> GLint -> Ptr GLdouble -> IO ())
    ptr_glUniform4dv GLint
    v1 GLint
    v2 Ptr GLdouble
    v3

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

    -- glUniform4f -----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform4f
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> GLfloat -- ^ @v2@.
      -> GLfloat -- ^ @v3@.
      -> m ()
    glUniform4f :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
    glUniform4f GLint
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn861 FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glUniform4f GLint
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5

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

    -- glUniform4fARB --------------------------------------------------------------

    -- | This command is an alias for 'glUniform4f'.
    glUniform4fARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLfloat -- ^ @v0@.
      -> GLfloat -- ^ @v1@.
      -> GLfloat -- ^ @v2@.
      -> GLfloat -- ^ @v3@.
      -> m ()
    glUniform4fARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
    glUniform4fARB GLint
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn861 FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glUniform4fARB GLint
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4 GLfloat
    v5

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

    -- glUniform4fv ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform4fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
      -> m ()
    glUniform4fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLfloat -> m ()
    glUniform4fv GLint
    v1 GLint
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> Ptr GLfloat -> IO ()
    dyn836 FunPtr (GLint -> GLint -> Ptr GLfloat -> IO ())
    ptr_glUniform4fv GLint
    v1 GLint
    v2 Ptr GLfloat
    v3

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

    -- glUniform4fvARB -------------------------------------------------------------

    -- | This command is an alias for 'glUniform4fv'.
    glUniform4fvARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
      -> m ()
    glUniform4fvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLfloat -> m ()
    glUniform4fvARB GLint
    v1 GLint
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> Ptr GLfloat -> IO ()
    dyn836 FunPtr (GLint -> GLint -> Ptr GLfloat -> IO ())
    ptr_glUniform4fvARB GLint
    v1 GLint
    v2 Ptr GLfloat
    v3

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

    -- glUniform4i -----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform4i
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> GLint -- ^ @v2@.
      -> GLint -- ^ @v3@.
      -> m ()
    glUniform4i :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLint -> GLint -> GLint -> m ()
    glUniform4i GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
    -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()
    dyn261 FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glUniform4i GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    v5

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

    -- glUniform4i64ARB ------------------------------------------------------------

    glUniform4i64ARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLint64 -- ^ @x@.
      -> GLint64 -- ^ @y@.
      -> GLint64 -- ^ @z@.
      -> GLint64 -- ^ @w@.
      -> m ()
    glUniform4i64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
    glUniform4i64ARB GLint
    v1 GLint64
    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 (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
    -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()
    dyn862 FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
    ptr_glUniform4i64ARB GLint
    v1 GLint64
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5

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

    -- glUniform4i64NV -------------------------------------------------------------

    glUniform4i64NV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLint64EXT -- ^ @x@.
      -> GLint64EXT -- ^ @y@.
      -> GLint64EXT -- ^ @z@.
      -> GLint64EXT -- ^ @w@.
      -> m ()
    glUniform4i64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
    glUniform4i64NV GLint
    v1 GLint64
    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 (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
    -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()
    dyn863 FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
    ptr_glUniform4i64NV GLint
    v1 GLint64
    v2 GLint64
    v3 GLint64
    v4 GLint64
    v5

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

    -- glUniform4i64vARB -----------------------------------------------------------

    glUniform4i64vARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint64 -- ^ @value@ pointing to @count*4@ elements of type @GLint64@.
      -> m ()
    glUniform4i64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLint64 -> m ()
    glUniform4i64vARB GLint
    v1 GLint
    v2 Ptr GLint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLint64 -> IO ())
    -> GLint -> GLint -> Ptr GLint64 -> IO ()
    dyn839 FunPtr (GLint -> GLint -> Ptr GLint64 -> IO ())
    ptr_glUniform4i64vARB GLint
    v1 GLint
    v2 Ptr GLint64
    v3

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

    -- glUniform4i64vNV ------------------------------------------------------------

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

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

    -- glUniform4iARB --------------------------------------------------------------

    -- | This command is an alias for 'glUniform4i'.
    glUniform4iARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLint -- ^ @v0@.
      -> GLint -- ^ @v1@.
      -> GLint -- ^ @v2@.
      -> GLint -- ^ @v3@.
      -> m ()
    glUniform4iARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLint -> GLint -> GLint -> m ()
    glUniform4iARB GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
    -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()
    dyn261 FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glUniform4iARB GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    v5

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

    -- glUniform4iv ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform4iv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*4@ elements of type @GLint@.
      -> m ()
    glUniform4iv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLint -> m ()
    glUniform4iv GLint
    v1 GLint
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    -> GLint -> GLint -> Ptr GLint -> IO ()
    dyn841 FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    ptr_glUniform4iv GLint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glUniform4ivARB -------------------------------------------------------------

    -- | This command is an alias for 'glUniform4iv'.
    glUniform4ivARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLint -- ^ @value@ pointing to @count*4@ elements of type @GLint@.
      -> m ()
    glUniform4ivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLint -> m ()
    glUniform4ivARB GLint
    v1 GLint
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    -> GLint -> GLint -> Ptr GLint -> IO ()
    dyn841 FunPtr (GLint -> GLint -> Ptr GLint -> IO ())
    ptr_glUniform4ivARB GLint
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glUniform4ui ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniform4ui
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> GLuint -- ^ @v2@.
      -> GLuint -- ^ @v3@.
      -> m ()
    glUniform4ui :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
    glUniform4ui GLint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn864 FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glUniform4ui GLint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5

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

    -- glUniform4ui64ARB -----------------------------------------------------------

    glUniform4ui64ARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64 -- ^ @x@.
      -> GLuint64 -- ^ @y@.
      -> GLuint64 -- ^ @z@.
      -> GLuint64 -- ^ @w@.
      -> m ()
    glUniform4ui64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
    glUniform4ui64ARB GLint
    v1 GLuint64
    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
      (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
    dyn865 FunPtr
      (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    ptr_glUniform4ui64ARB GLint
    v1 GLuint64
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5

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

    -- glUniform4ui64NV ------------------------------------------------------------

    glUniform4ui64NV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64EXT -- ^ @x@.
      -> GLuint64EXT -- ^ @y@.
      -> GLuint64EXT -- ^ @z@.
      -> GLuint64EXT -- ^ @w@.
      -> m ()
    glUniform4ui64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
    glUniform4ui64NV GLint
    v1 GLuint64
    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
      (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
    dyn866 FunPtr
      (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    ptr_glUniform4ui64NV GLint
    v1 GLuint64
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5

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

    -- glUniform4ui64vARB ----------------------------------------------------------

    glUniform4ui64vARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @value@ pointing to @count*4@ elements of type @GLuint64@.
      -> m ()
    glUniform4ui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniform4ui64vARB GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn845 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniform4ui64vARB GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUniform4ui64vNV -----------------------------------------------------------

    glUniform4ui64vNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*4@ elements of type @GLuint64EXT@.
      -> m ()
    glUniform4ui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniform4ui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn846 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniform4ui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUniform4uiEXT -------------------------------------------------------------

    -- | This command is an alias for 'glUniform4ui'.
    glUniform4uiEXT
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint -- ^ @v0@.
      -> GLuint -- ^ @v1@.
      -> GLuint -- ^ @v2@.
      -> GLuint -- ^ @v3@.
      -> m ()
    glUniform4uiEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
    glUniform4uiEXT GLint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn864 FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glUniform4uiEXT GLint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 GLuint
    v5

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

    -- glUniform4uiv ---------------------------------------------------------------

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

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

    -- glUniform4uivEXT ------------------------------------------------------------

    -- | This command is an alias for 'glUniform4uiv'.
    glUniform4uivEXT
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @value@ pointing to @count*4@ elements of type @GLuint@.
      -> m ()
    glUniform4uivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint -> m ()
    glUniform4uivEXT GLint
    v1 GLint
    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 (GLint -> GLint -> Ptr GLuint -> IO ())
    -> GLint -> GLint -> Ptr GLuint -> IO ()
    dyn847 FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
    ptr_glUniform4uivEXT GLint
    v1 GLint
    v2 Ptr GLuint
    v3

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

    -- glUniformBlockBinding -------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniformBlockBinding.xhtml OpenGL 4.x>.
    glUniformBlockBinding
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @uniformBlockIndex@.
      -> GLuint -- ^ @uniformBlockBinding@.
      -> m ()
    glUniformBlockBinding :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> m ()
    glUniformBlockBinding GLuint
    v1 GLuint
    v2 GLuint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> IO ()
    dyn109 FunPtr (GLuint -> GLuint -> GLuint -> IO ())
    ptr_glUniformBlockBinding GLuint
    v1 GLuint
    v2 GLuint
    v3

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

    -- glUniformBufferEXT ----------------------------------------------------------

    glUniformBufferEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint -- ^ @buffer@.
      -> m ()
    glUniformBufferEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLuint -> m ()
    glUniformBufferEXT GLuint
    v1 GLint
    v2 GLuint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> GLuint -> IO ())
    -> GLuint -> GLint -> GLuint -> IO ()
    dyn676 FunPtr (GLuint -> GLint -> GLuint -> IO ())
    ptr_glUniformBufferEXT GLuint
    v1 GLint
    v2 GLuint
    v3

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

    -- glUniformHandleui64ARB ------------------------------------------------------

    glUniformHandleui64ARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64 -- ^ @value@.
      -> m ()
    glUniformHandleui64ARB :: forall (m :: * -> *). MonadIO m => GLint -> GLuint64 -> m ()
    glUniformHandleui64ARB GLint
    v1 GLuint64
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> IO ()
    dyn843 FunPtr (GLint -> GLuint64 -> IO ())
    ptr_glUniformHandleui64ARB GLint
    v1 GLuint64
    v2

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

    -- glUniformHandleui64IMG ------------------------------------------------------

    -- | This command is an alias for 'glUniformHandleui64ARB'.
    glUniformHandleui64IMG
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64 -- ^ @value@.
      -> m ()
    glUniformHandleui64IMG :: forall (m :: * -> *). MonadIO m => GLint -> GLuint64 -> m ()
    glUniformHandleui64IMG GLint
    v1 GLuint64
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> IO ()
    dyn843 FunPtr (GLint -> GLuint64 -> IO ())
    ptr_glUniformHandleui64IMG GLint
    v1 GLuint64
    v2

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

    -- glUniformHandleui64NV -------------------------------------------------------

    glUniformHandleui64NV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64 -- ^ @value@.
      -> m ()
    glUniformHandleui64NV :: forall (m :: * -> *). MonadIO m => GLint -> GLuint64 -> m ()
    glUniformHandleui64NV GLint
    v1 GLuint64
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> IO ()
    dyn843 FunPtr (GLint -> GLuint64 -> IO ())
    ptr_glUniformHandleui64NV GLint
    v1 GLuint64
    v2

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

    -- glUniformHandleui64vARB -----------------------------------------------------

    glUniformHandleui64vARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @value@ pointing to @count@ elements of type @GLuint64@.
      -> m ()
    glUniformHandleui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniformHandleui64vARB GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn845 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniformHandleui64vARB GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUniformHandleui64vIMG -----------------------------------------------------

    -- | This command is an alias for 'glUniformHandleui64vARB'.
    glUniformHandleui64vIMG
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @value@ pointing to @count@ elements of type @GLuint64@.
      -> m ()
    glUniformHandleui64vIMG :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniformHandleui64vIMG GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn845 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniformHandleui64vIMG GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUniformHandleui64vNV ------------------------------------------------------

    glUniformHandleui64vNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @value@ pointing to @count@ elements of type @GLuint64@.
      -> m ()
    glUniformHandleui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniformHandleui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn845 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniformHandleui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUniformMatrix2dv ----------------------------------------------------------

    glUniformMatrix2dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
      -> m ()
    glUniformMatrix2dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glUniformMatrix2dv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn867 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glUniformMatrix2dv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLdouble
    v4

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

    -- glUniformMatrix2fv ----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniformMatrix2fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix2fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix2fv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix2fv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix2fvARB -------------------------------------------------------

    -- | This command is an alias for 'glUniformMatrix2fv'.
    glUniformMatrix2fvARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix2fvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix2fvARB GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix2fvARB GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix2x3dv --------------------------------------------------------

    glUniformMatrix2x3dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLdouble -- ^ @value@ pointing to @count*6@ elements of type @GLdouble@.
      -> m ()
    glUniformMatrix2x3dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glUniformMatrix2x3dv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn867 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glUniformMatrix2x3dv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLdouble
    v4

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

    -- glUniformMatrix2x3fv --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniformMatrix2x3fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix2x3fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix2x3fv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix2x3fv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix2x3fvNV ------------------------------------------------------

    -- | This command is an alias for 'glUniformMatrix2x3fv'.
    glUniformMatrix2x3fvNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix2x3fvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix2x3fvNV GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix2x3fvNV GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix2x4dv --------------------------------------------------------

    glUniformMatrix2x4dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLdouble -- ^ @value@ pointing to @count*8@ elements of type @GLdouble@.
      -> m ()
    glUniformMatrix2x4dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glUniformMatrix2x4dv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn867 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glUniformMatrix2x4dv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLdouble
    v4

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

    -- glUniformMatrix2x4fv --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniformMatrix2x4fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix2x4fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix2x4fv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix2x4fv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix2x4fvNV ------------------------------------------------------

    -- | This command is an alias for 'glUniformMatrix2x4fv'.
    glUniformMatrix2x4fvNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix2x4fvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix2x4fvNV GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix2x4fvNV GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix3dv ----------------------------------------------------------

    glUniformMatrix3dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLdouble -- ^ @value@ pointing to @count*9@ elements of type @GLdouble@.
      -> m ()
    glUniformMatrix3dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glUniformMatrix3dv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn867 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glUniformMatrix3dv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLdouble
    v4

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

    -- glUniformMatrix3fv ----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniformMatrix3fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*9@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix3fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix3fv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix3fv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix3fvARB -------------------------------------------------------

    -- | This command is an alias for 'glUniformMatrix3fv'.
    glUniformMatrix3fvARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*9@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix3fvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix3fvARB GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix3fvARB GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix3x2dv --------------------------------------------------------

    glUniformMatrix3x2dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLdouble -- ^ @value@ pointing to @count*6@ elements of type @GLdouble@.
      -> m ()
    glUniformMatrix3x2dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glUniformMatrix3x2dv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn867 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glUniformMatrix3x2dv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLdouble
    v4

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

    -- glUniformMatrix3x2fv --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniformMatrix3x2fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix3x2fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix3x2fv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix3x2fv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix3x2fvNV ------------------------------------------------------

    -- | This command is an alias for 'glUniformMatrix3x2fv'.
    glUniformMatrix3x2fvNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix3x2fvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix3x2fvNV GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix3x2fvNV GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix3x4dv --------------------------------------------------------

    glUniformMatrix3x4dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLdouble -- ^ @value@ pointing to @count*12@ elements of type @GLdouble@.
      -> m ()
    glUniformMatrix3x4dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glUniformMatrix3x4dv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn867 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glUniformMatrix3x4dv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLdouble
    v4

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

    -- glUniformMatrix3x4fv --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniformMatrix3x4fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix3x4fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix3x4fv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix3x4fv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix3x4fvNV ------------------------------------------------------

    -- | This command is an alias for 'glUniformMatrix3x4fv'.
    glUniformMatrix3x4fvNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix3x4fvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix3x4fvNV GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix3x4fvNV GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix4dv ----------------------------------------------------------

    glUniformMatrix4dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLdouble -- ^ @value@ pointing to @count*16@ elements of type @GLdouble@.
      -> m ()
    glUniformMatrix4dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glUniformMatrix4dv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn867 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glUniformMatrix4dv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLdouble
    v4

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

    -- glUniformMatrix4fv ----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniformMatrix4fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*16@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix4fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix4fv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix4fv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix4fvARB -------------------------------------------------------

    -- | This command is an alias for 'glUniformMatrix4fv'.
    glUniformMatrix4fvARB
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*16@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix4fvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix4fvARB GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix4fvARB GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix4x2dv --------------------------------------------------------

    glUniformMatrix4x2dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLdouble -- ^ @value@ pointing to @count*8@ elements of type @GLdouble@.
      -> m ()
    glUniformMatrix4x2dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glUniformMatrix4x2dv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn867 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glUniformMatrix4x2dv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLdouble
    v4

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

    -- glUniformMatrix4x2fv --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniformMatrix4x2fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix4x2fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix4x2fv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix4x2fv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix4x2fvNV ------------------------------------------------------

    -- | This command is an alias for 'glUniformMatrix4x2fv'.
    glUniformMatrix4x2fvNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix4x2fvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix4x2fvNV GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix4x2fvNV GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix4x3dv --------------------------------------------------------

    glUniformMatrix4x3dv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLdouble -- ^ @value@ pointing to @count*12@ elements of type @GLdouble@.
      -> m ()
    glUniformMatrix4x3dv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glUniformMatrix4x3dv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn867 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glUniformMatrix4x3dv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLdouble
    v4

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

    -- glUniformMatrix4x3fv --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
    glUniformMatrix4x3fv
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix4x3fv :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix4x3fv GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix4x3fv GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformMatrix4x3fvNV ------------------------------------------------------

    -- | This command is an alias for 'glUniformMatrix4x3fv'.
    glUniformMatrix4x3fvNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
      -> m ()
    glUniformMatrix4x3fvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glUniformMatrix4x3fvNV GLint
    v1 GLint
    v2 GLboolean
    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 (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn868 FunPtr (GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glUniformMatrix4x3fvNV GLint
    v1 GLint
    v2 GLboolean
    v3 Ptr GLfloat
    v4

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

    -- glUniformSubroutinesuiv -----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glUniformSubroutines.xhtml OpenGL 4.x>.
    glUniformSubroutinesuiv
      :: MonadIO m
      => GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint -- ^ @indices@ pointing to @count@ elements of type @GLuint@.
      -> m ()
    glUniformSubroutinesuiv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> Ptr GLuint -> m ()
    glUniformSubroutinesuiv GLuint
    v1 GLint
    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 -> GLint -> Ptr GLuint -> IO ())
    -> GLuint -> GLint -> Ptr GLuint -> IO ()
    dyn204 FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
    ptr_glUniformSubroutinesuiv GLuint
    v1 GLint
    v2 Ptr GLuint
    v3

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

    -- glUniformui64NV -------------------------------------------------------------

    glUniformui64NV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLuint64EXT -- ^ @value@.
      -> m ()
    glUniformui64NV :: forall (m :: * -> *). MonadIO m => GLint -> GLuint64 -> m ()
    glUniformui64NV GLint
    v1 GLuint64
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> IO ()
    dyn844 FunPtr (GLint -> GLuint64 -> IO ())
    ptr_glUniformui64NV GLint
    v1 GLuint64
    v2

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

    -- glUniformui64vNV ------------------------------------------------------------

    glUniformui64vNV
      :: MonadIO m
      => GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*1@ elements of type @GLuint64EXT@.
      -> m ()
    glUniformui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> Ptr GLuint64 -> m ()
    glUniformui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn846 FunPtr (GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glUniformui64vNV GLint
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glUnlockArraysEXT -----------------------------------------------------------

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

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

    -- glUnmapBuffer ---------------------------------------------------------------

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

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

    -- glUnmapBufferARB ------------------------------------------------------------

    -- | This command is an alias for 'glUnmapBuffer'.
    glUnmapBufferARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
      -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
    glUnmapBufferARB :: forall (m :: * -> *). MonadIO m => GLuint -> m GLboolean
    glUnmapBufferARB GLuint
    v1 = IO GLboolean -> m GLboolean
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLboolean -> m GLboolean) -> IO GLboolean -> m GLboolean
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO GLboolean) -> GLuint -> IO GLboolean
    dyn501 FunPtr (GLuint -> IO GLboolean)
    ptr_glUnmapBufferARB GLuint
    v1

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

    -- glUnmapBufferOES ------------------------------------------------------------

    -- | This command is an alias for 'glUnmapBuffer'.
    glUnmapBufferOES
      :: MonadIO m
      => GLenum -- ^ @target@.
      -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
    glUnmapBufferOES :: forall (m :: * -> *). MonadIO m => GLuint -> m GLboolean
    glUnmapBufferOES GLuint
    v1 = IO GLboolean -> m GLboolean
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLboolean -> m GLboolean) -> IO GLboolean -> m GLboolean
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO GLboolean) -> GLuint -> IO GLboolean
    dyn501 FunPtr (GLuint -> IO GLboolean)
    ptr_glUnmapBufferOES GLuint
    v1

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

    -- glUnmapNamedBuffer ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glUnmapBuffer.xhtml OpenGL 4.x>.
    glUnmapNamedBuffer
      :: MonadIO m
      => GLuint -- ^ @buffer@.
      -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
    glUnmapNamedBuffer :: forall (m :: * -> *). MonadIO m => GLuint -> m GLboolean
    glUnmapNamedBuffer GLuint
    v1 = IO GLboolean -> m GLboolean
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLboolean -> m GLboolean) -> IO GLboolean -> m GLboolean
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO GLboolean) -> GLuint -> IO GLboolean
    dyn284 FunPtr (GLuint -> IO GLboolean)
    ptr_glUnmapNamedBuffer GLuint
    v1

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

    -- glUnmapNamedBufferEXT -------------------------------------------------------

    glUnmapNamedBufferEXT
      :: MonadIO m
      => GLuint -- ^ @buffer@.
      -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
    glUnmapNamedBufferEXT :: forall (m :: * -> *). MonadIO m => GLuint -> m GLboolean
    glUnmapNamedBufferEXT GLuint
    v1 = IO GLboolean -> m GLboolean
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLboolean -> m GLboolean) -> IO GLboolean -> m GLboolean
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO GLboolean) -> GLuint -> IO GLboolean
    dyn284 FunPtr (GLuint -> IO GLboolean)
    ptr_glUnmapNamedBufferEXT GLuint
    v1

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

    -- glUnmapObjectBufferATI ------------------------------------------------------

    glUnmapObjectBufferATI
      :: MonadIO m
      => GLuint -- ^ @buffer@.
      -> m ()
    glUnmapObjectBufferATI :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glUnmapObjectBufferATI GLuint
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO ()) -> GLuint -> IO ()
    dyn3 FunPtr (GLuint -> IO ())
    ptr_glUnmapObjectBufferATI GLuint
    v1

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

    -- glUnmapTexture2DINTEL -------------------------------------------------------

    glUnmapTexture2DINTEL
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLint -- ^ @level@.
      -> m ()
    glUnmapTexture2DINTEL :: forall (m :: * -> *). MonadIO m => GLuint -> GLint -> m ()
    glUnmapTexture2DINTEL GLuint
    v1 GLint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> IO ()) -> GLuint -> GLint -> IO ()
    dyn499 FunPtr (GLuint -> GLint -> IO ())
    ptr_glUnmapTexture2DINTEL GLuint
    v1 GLint
    v2

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