    {-# OPTIONS_HADDOCK hide #-}
    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.GL.Functions.F22
    -- 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.F22 (
      glProgramUniform4iv,
      glProgramUniform4ivEXT,
      glProgramUniform4ui,
      glProgramUniform4ui64ARB,
      glProgramUniform4ui64NV,
      glProgramUniform4ui64vARB,
      glProgramUniform4ui64vNV,
      glProgramUniform4uiEXT,
      glProgramUniform4uiv,
      glProgramUniform4uivEXT,
      glProgramUniformHandleui64ARB,
      glProgramUniformHandleui64IMG,
      glProgramUniformHandleui64NV,
      glProgramUniformHandleui64vARB,
      glProgramUniformHandleui64vIMG,
      glProgramUniformHandleui64vNV,
      glProgramUniformMatrix2dv,
      glProgramUniformMatrix2dvEXT,
      glProgramUniformMatrix2fv,
      glProgramUniformMatrix2fvEXT,
      glProgramUniformMatrix2x3dv,
      glProgramUniformMatrix2x3dvEXT,
      glProgramUniformMatrix2x3fv,
      glProgramUniformMatrix2x3fvEXT,
      glProgramUniformMatrix2x4dv,
      glProgramUniformMatrix2x4dvEXT,
      glProgramUniformMatrix2x4fv,
      glProgramUniformMatrix2x4fvEXT,
      glProgramUniformMatrix3dv,
      glProgramUniformMatrix3dvEXT,
      glProgramUniformMatrix3fv,
      glProgramUniformMatrix3fvEXT,
      glProgramUniformMatrix3x2dv,
      glProgramUniformMatrix3x2dvEXT,
      glProgramUniformMatrix3x2fv,
      glProgramUniformMatrix3x2fvEXT,
      glProgramUniformMatrix3x4dv,
      glProgramUniformMatrix3x4dvEXT,
      glProgramUniformMatrix3x4fv,
      glProgramUniformMatrix3x4fvEXT,
      glProgramUniformMatrix4dv,
      glProgramUniformMatrix4dvEXT,
      glProgramUniformMatrix4fv,
      glProgramUniformMatrix4fvEXT,
      glProgramUniformMatrix4x2dv,
      glProgramUniformMatrix4x2dvEXT,
      glProgramUniformMatrix4x2fv,
      glProgramUniformMatrix4x2fvEXT,
      glProgramUniformMatrix4x3dv,
      glProgramUniformMatrix4x3dvEXT,
      glProgramUniformMatrix4x3fv,
      glProgramUniformMatrix4x3fvEXT,
      glProgramUniformui64NV,
      glProgramUniformui64vNV,
      glProgramVertexLimitNV,
      glProvokingVertex,
      glProvokingVertexEXT,
      glPushAttrib,
      glPushClientAttrib,
      glPushClientAttribDefaultEXT,
      glPushDebugGroup,
      glPushDebugGroupKHR,
      glPushGroupMarkerEXT,
      glPushMatrix,
      glPushName,
      glQueryCounter,
      glQueryCounterEXT,
      glQueryMatrixxOES,
      glQueryObjectParameteruiAMD,
      glQueryResourceNV,
      glQueryResourceTagNV,
      glRasterPos2d,
      glRasterPos2dv,
      glRasterPos2f,
      glRasterPos2fv,
      glRasterPos2i,
      glRasterPos2iv,
      glRasterPos2s,
      glRasterPos2sv,
      glRasterPos2xOES,
      glRasterPos2xvOES,
      glRasterPos3d,
      glRasterPos3dv,
      glRasterPos3f,
      glRasterPos3fv,
      glRasterPos3i,
      glRasterPos3iv,
      glRasterPos3s,
      glRasterPos3sv,
      glRasterPos3xOES,
      glRasterPos3xvOES,
      glRasterPos4d,
      glRasterPos4dv,
      glRasterPos4f,
      glRasterPos4fv,
      glRasterPos4i,
      glRasterPos4iv,
      glRasterPos4s,
      glRasterPos4sv,
      glRasterPos4xOES
    ) where

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

    -- glProgramUniform4iv ---------------------------------------------------------

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

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

    -- glProgramUniform4ivEXT ------------------------------------------------------

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

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

    -- glProgramUniform4ui ---------------------------------------------------------

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

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

    -- glProgramUniform4ui64ARB ----------------------------------------------------

    glProgramUniform4ui64ARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64 -- ^ @x@.
      -> GLuint64 -- ^ @y@.
      -> GLuint64 -- ^ @z@.
      -> GLuint64 -- ^ @w@.
      -> m ()
    glProgramUniform4ui64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
    glProgramUniform4ui64ARB GLuint
    v1 GLint
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5 GLuint64
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    -> GLuint
    -> GLint
    -> GLuint64
    -> GLuint64
    -> GLuint64
    -> GLuint64
    -> IO ()
    dyn702 FunPtr
      (GLuint
       -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    ptr_glProgramUniform4ui64ARB GLuint
    v1 GLint
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5 GLuint64
    v6

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

    -- glProgramUniform4ui64NV -----------------------------------------------------

    glProgramUniform4ui64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64EXT -- ^ @x@.
      -> GLuint64EXT -- ^ @y@.
      -> GLuint64EXT -- ^ @z@.
      -> GLuint64EXT -- ^ @w@.
      -> m ()
    glProgramUniform4ui64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint
    -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
    glProgramUniform4ui64NV GLuint
    v1 GLint
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5 GLuint64
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint
       -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    -> GLuint
    -> GLint
    -> GLuint64
    -> GLuint64
    -> GLuint64
    -> GLuint64
    -> IO ()
    dyn703 FunPtr
      (GLuint
       -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
    ptr_glProgramUniform4ui64NV GLuint
    v1 GLint
    v2 GLuint64
    v3 GLuint64
    v4 GLuint64
    v5 GLuint64
    v6

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

    -- glProgramUniform4ui64vARB ---------------------------------------------------

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

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

    -- glProgramUniform4ui64vNV ----------------------------------------------------

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

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

    -- glProgramUniform4uiEXT ------------------------------------------------------

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

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

    -- glProgramUniform4uiv --------------------------------------------------------

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

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

    -- glProgramUniform4uivEXT -----------------------------------------------------

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

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

    -- glProgramUniformHandleui64ARB -----------------------------------------------

    glProgramUniformHandleui64ARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64 -- ^ @value@.
      -> m ()
    glProgramUniformHandleui64ARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLuint64 -> m ()
    glProgramUniformHandleui64ARB GLuint
    v1 GLint
    v2 GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
    -> GLuint -> GLint -> GLuint64 -> IO ()
    dyn677 FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
    ptr_glProgramUniformHandleui64ARB GLuint
    v1 GLint
    v2 GLuint64
    v3

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

    -- glProgramUniformHandleui64IMG -----------------------------------------------

    -- | This command is an alias for 'glProgramUniformHandleui64ARB'.
    glProgramUniformHandleui64IMG
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64 -- ^ @value@.
      -> m ()
    glProgramUniformHandleui64IMG :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLuint64 -> m ()
    glProgramUniformHandleui64IMG GLuint
    v1 GLint
    v2 GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
    -> GLuint -> GLint -> GLuint64 -> IO ()
    dyn677 FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
    ptr_glProgramUniformHandleui64IMG GLuint
    v1 GLint
    v2 GLuint64
    v3

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

    -- glProgramUniformHandleui64NV ------------------------------------------------

    glProgramUniformHandleui64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64 -- ^ @value@.
      -> m ()
    glProgramUniformHandleui64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLuint64 -> m ()
    glProgramUniformHandleui64NV GLuint
    v1 GLint
    v2 GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
    -> GLuint -> GLint -> GLuint64 -> IO ()
    dyn677 FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
    ptr_glProgramUniformHandleui64NV GLuint
    v1 GLint
    v2 GLuint64
    v3

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

    -- glProgramUniformHandleui64vARB ----------------------------------------------

    glProgramUniformHandleui64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @values@ pointing to @count@ elements of type @GLuint64@.
      -> m ()
    glProgramUniformHandleui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> Ptr GLuint64 -> m ()
    glProgramUniformHandleui64vARB GLuint
    v1 GLint
    v2 GLint
    v3 Ptr GLuint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn482 FunPtr (GLuint -> GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glProgramUniformHandleui64vARB GLuint
    v1 GLint
    v2 GLint
    v3 Ptr GLuint64
    v4

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

    -- glProgramUniformHandleui64vIMG ----------------------------------------------

    -- | This command is an alias for 'glProgramUniformHandleui64vARB'.
    glProgramUniformHandleui64vIMG
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @values@ pointing to @count@ elements of type @GLuint64@.
      -> m ()
    glProgramUniformHandleui64vIMG :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> Ptr GLuint64 -> m ()
    glProgramUniformHandleui64vIMG GLuint
    v1 GLint
    v2 GLint
    v3 Ptr GLuint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn482 FunPtr (GLuint -> GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glProgramUniformHandleui64vIMG GLuint
    v1 GLint
    v2 GLint
    v3 Ptr GLuint64
    v4

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

    -- glProgramUniformHandleui64vNV -----------------------------------------------

    glProgramUniformHandleui64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLuint64 -- ^ @values@ pointing to @count@ elements of type @GLuint64@.
      -> m ()
    glProgramUniformHandleui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> Ptr GLuint64 -> m ()
    glProgramUniformHandleui64vNV GLuint
    v1 GLint
    v2 GLint
    v3 Ptr GLuint64
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> GLint -> Ptr GLuint64 -> IO ())
    -> GLuint -> GLint -> GLint -> Ptr GLuint64 -> IO ()
    dyn482 FunPtr (GLuint -> GLint -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glProgramUniformHandleui64vNV GLuint
    v1 GLint
    v2 GLint
    v3 Ptr GLuint64
    v4

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

    -- glProgramUniformMatrix2dv ---------------------------------------------------

    glProgramUniformMatrix2dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix2dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix2dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix2dvEXT ------------------------------------------------

    glProgramUniformMatrix2dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix2dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix2dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix2fv ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniformMatrix2fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix2fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix2fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix2fvEXT ------------------------------------------------

    -- | This command is an alias for 'glProgramUniformMatrix2fv'.
    glProgramUniformMatrix2fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix2fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix2fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix2x3dv -------------------------------------------------

    glProgramUniformMatrix2x3dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2x3dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix2x3dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix2x3dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix2x3dvEXT ----------------------------------------------

    glProgramUniformMatrix2x3dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2x3dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix2x3dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix2x3dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix2x3fv -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniformMatrix2x3fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2x3fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix2x3fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix2x3fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix2x3fvEXT ----------------------------------------------

    -- | This command is an alias for 'glProgramUniformMatrix2x3fv'.
    glProgramUniformMatrix2x3fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2x3fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix2x3fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix2x3fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix2x4dv -------------------------------------------------

    glProgramUniformMatrix2x4dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2x4dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix2x4dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix2x4dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix2x4dvEXT ----------------------------------------------

    glProgramUniformMatrix2x4dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2x4dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix2x4dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix2x4dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix2x4fv -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniformMatrix2x4fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2x4fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix2x4fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix2x4fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix2x4fvEXT ----------------------------------------------

    -- | This command is an alias for 'glProgramUniformMatrix2x4fv'.
    glProgramUniformMatrix2x4fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix2x4fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix2x4fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix2x4fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix3dv ---------------------------------------------------

    glProgramUniformMatrix3dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix3dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix3dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix3dvEXT ------------------------------------------------

    glProgramUniformMatrix3dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix3dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix3dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix3fv ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniformMatrix3fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix3fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix3fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix3fvEXT ------------------------------------------------

    -- | This command is an alias for 'glProgramUniformMatrix3fv'.
    glProgramUniformMatrix3fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix3fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix3fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix3x2dv -------------------------------------------------

    glProgramUniformMatrix3x2dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3x2dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix3x2dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix3x2dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix3x2dvEXT ----------------------------------------------

    glProgramUniformMatrix3x2dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3x2dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix3x2dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix3x2dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix3x2fv -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniformMatrix3x2fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3x2fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix3x2fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix3x2fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix3x2fvEXT ----------------------------------------------

    -- | This command is an alias for 'glProgramUniformMatrix3x2fv'.
    glProgramUniformMatrix3x2fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3x2fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix3x2fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix3x2fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix3x4dv -------------------------------------------------

    glProgramUniformMatrix3x4dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3x4dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix3x4dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix3x4dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix3x4dvEXT ----------------------------------------------

    glProgramUniformMatrix3x4dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3x4dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix3x4dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix3x4dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix3x4fv -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniformMatrix3x4fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3x4fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix3x4fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix3x4fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix3x4fvEXT ----------------------------------------------

    -- | This command is an alias for 'glProgramUniformMatrix3x4fv'.
    glProgramUniformMatrix3x4fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix3x4fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix3x4fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix3x4fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix4dv ---------------------------------------------------

    glProgramUniformMatrix4dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix4dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix4dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix4dvEXT ------------------------------------------------

    glProgramUniformMatrix4dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix4dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix4dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix4fv ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniformMatrix4fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix4fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix4fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix4fvEXT ------------------------------------------------

    -- | This command is an alias for 'glProgramUniformMatrix4fv'.
    glProgramUniformMatrix4fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix4fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix4fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix4x2dv -------------------------------------------------

    glProgramUniformMatrix4x2dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4x2dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix4x2dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix4x2dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix4x2dvEXT ----------------------------------------------

    glProgramUniformMatrix4x2dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4x2dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix4x2dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix4x2dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix4x2fv -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniformMatrix4x2fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4x2fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix4x2fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix4x2fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix4x2fvEXT ----------------------------------------------

    -- | This command is an alias for 'glProgramUniformMatrix4x2fv'.
    glProgramUniformMatrix4x2fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4x2fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix4x2fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix4x2fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix4x3dv -------------------------------------------------

    glProgramUniformMatrix4x3dv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4x3dv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix4x3dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix4x3dv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix4x3dvEXT ----------------------------------------------

    glProgramUniformMatrix4x3dvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4x3dvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> m ()
    glProgramUniformMatrix4x3dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ()
    dyn704 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLdouble -> IO ())
    ptr_glProgramUniformMatrix4x3dvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLdouble
    v5

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

    -- glProgramUniformMatrix4x3fv -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
    glProgramUniformMatrix4x3fv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4x3fv :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix4x3fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix4x3fv GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformMatrix4x3fvEXT ----------------------------------------------

    -- | This command is an alias for 'glProgramUniformMatrix4x3fv'.
    glProgramUniformMatrix4x3fvEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> 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 ()
    glProgramUniformMatrix4x3fvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> m ()
    glProgramUniformMatrix4x3fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    -> GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ()
    dyn705 FunPtr
      (GLuint -> GLint -> GLint -> GLboolean -> Ptr GLfloat -> IO ())
    ptr_glProgramUniformMatrix4x3fvEXT GLuint
    v1 GLint
    v2 GLint
    v3 GLboolean
    v4 Ptr GLfloat
    v5

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

    -- glProgramUniformui64NV ------------------------------------------------------

    glProgramUniformui64NV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> GLuint64EXT -- ^ @value@.
      -> m ()
    glProgramUniformui64NV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLuint64 -> m ()
    glProgramUniformui64NV GLuint
    v1 GLint
    v2 GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
    -> GLuint -> GLint -> GLuint64 -> IO ()
    dyn678 FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
    ptr_glProgramUniformui64NV GLuint
    v1 GLint
    v2 GLuint64
    v3

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

    -- glProgramUniformui64vNV -----------------------------------------------------

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

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

    -- glProgramVertexLimitNV ------------------------------------------------------

    glProgramVertexLimitNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLint -- ^ @limit@.
      -> m ()
    glProgramVertexLimitNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLint -> m ()
    glProgramVertexLimitNV GLuint
    v1 GLint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> IO ()) -> GLuint -> GLint -> IO ()
    dyn58 FunPtr (GLuint -> GLint -> IO ())
    ptr_glProgramVertexLimitNV GLuint
    v1 GLint
    v2

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

    -- glProvokingVertex -----------------------------------------------------------

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

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

    -- glProvokingVertexEXT --------------------------------------------------------

    -- | This command is an alias for 'glProvokingVertex'.
    glProvokingVertexEXT
      :: MonadIO m
      => GLenum -- ^ @mode@ of type [VertexProvokingMode](Graphics-GL-Groups.html#VertexProvokingMode).
      -> m ()
    glProvokingVertexEXT :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glProvokingVertexEXT GLuint
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO ()) -> GLuint -> IO ()
    dyn5 FunPtr (GLuint -> IO ())
    ptr_glProvokingVertexEXT GLuint
    v1

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

    -- glPushAttrib ----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml OpenGL 2.x>.
    glPushAttrib
      :: MonadIO m
      => GLbitfield -- ^ @mask@ of type [AttribMask](Graphics-GL-Groups.html#AttribMask).
      -> m ()
    glPushAttrib :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glPushAttrib GLuint
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO ()) -> GLuint -> IO ()
    dyn75 FunPtr (GLuint -> IO ())
    ptr_glPushAttrib GLuint
    v1

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

    -- glPushClientAttrib ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml OpenGL 2.x>.
    glPushClientAttrib
      :: MonadIO m
      => GLbitfield -- ^ @mask@ of type [ClientAttribMask](Graphics-GL-Groups.html#ClientAttribMask).
      -> m ()
    glPushClientAttrib :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glPushClientAttrib GLuint
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO ()) -> GLuint -> IO ()
    dyn75 FunPtr (GLuint -> IO ())
    ptr_glPushClientAttrib GLuint
    v1

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

    -- glPushClientAttribDefaultEXT ------------------------------------------------

    glPushClientAttribDefaultEXT
      :: MonadIO m
      => GLbitfield -- ^ @mask@ of type [ClientAttribMask](Graphics-GL-Groups.html#ClientAttribMask).
      -> m ()
    glPushClientAttribDefaultEXT :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glPushClientAttribDefaultEXT GLuint
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> IO ()) -> GLuint -> IO ()
    dyn75 FunPtr (GLuint -> IO ())
    ptr_glPushClientAttribDefaultEXT GLuint
    v1

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

    -- glPushDebugGroup ------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glPushDebugGroup.xhtml OpenGL 4.x>.
    glPushDebugGroup
      :: MonadIO m
      => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
      -> GLuint -- ^ @id@.
      -> GLsizei -- ^ @length@.
      -> Ptr GLchar -- ^ @message@ pointing to @COMPSIZE(message,length)@ elements of type @GLchar@.
      -> m ()
    glPushDebugGroup :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLint -> Ptr GLchar -> m ()
    glPushDebugGroup GLuint
    v1 GLuint
    v2 GLint
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLint -> Ptr GLchar -> IO ())
    -> GLuint -> GLuint -> GLint -> Ptr GLchar -> IO ()
    dyn511 FunPtr (GLuint -> GLuint -> GLint -> Ptr GLchar -> IO ())
    ptr_glPushDebugGroup GLuint
    v1 GLuint
    v2 GLint
    v3 Ptr GLchar
    v4

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

    -- glPushDebugGroupKHR ---------------------------------------------------------

    -- | This command is an alias for 'glPushDebugGroup'.
    glPushDebugGroupKHR
      :: MonadIO m
      => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
      -> GLuint -- ^ @id@.
      -> GLsizei -- ^ @length@.
      -> Ptr GLchar -- ^ @message@.
      -> m ()
    glPushDebugGroupKHR :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLint -> Ptr GLchar -> m ()
    glPushDebugGroupKHR GLuint
    v1 GLuint
    v2 GLint
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLint -> Ptr GLchar -> IO ())
    -> GLuint -> GLuint -> GLint -> Ptr GLchar -> IO ()
    dyn511 FunPtr (GLuint -> GLuint -> GLint -> Ptr GLchar -> IO ())
    ptr_glPushDebugGroupKHR GLuint
    v1 GLuint
    v2 GLint
    v3 Ptr GLchar
    v4

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

    -- glPushGroupMarkerEXT --------------------------------------------------------

    glPushGroupMarkerEXT
      :: MonadIO m
      => GLsizei -- ^ @length@.
      -> Ptr GLchar -- ^ @marker@.
      -> m ()
    glPushGroupMarkerEXT :: forall (m :: * -> *). MonadIO m => GLint -> Ptr GLchar -> m ()
    glPushGroupMarkerEXT GLint
    v1 Ptr GLchar
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> Ptr GLchar -> IO ())
    -> GLint -> Ptr GLchar -> IO ()
    dyn495 FunPtr (GLint -> Ptr GLchar -> IO ())
    ptr_glPushGroupMarkerEXT GLint
    v1 Ptr GLchar
    v2

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

    -- glPushMatrix ----------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml OpenGL 2.x>.
    glPushMatrix
      :: MonadIO m
      => m ()
    glPushMatrix :: forall (m :: * -> *). MonadIO m => m ()
    glPushMatrix = IO () -> m ()
    forall a. IO a -> 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_glPushMatrix

    {-# NOINLINE ptr_glPushMatrix #-}
    ptr_glPushMatrix :: FunPtr (IO ())
    ptr_glPushMatrix :: FunPtr (IO ())
    ptr_glPushMatrix = 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
    "glPushMatrix"

    -- glPushName ------------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml OpenGL 2.x>.
    glPushName
      :: MonadIO m
      => GLuint -- ^ @name@ of type @SelectName@.
      -> m ()
    glPushName :: forall (m :: * -> *). MonadIO m => GLuint -> m ()
    glPushName 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_glPushName GLuint
    v1

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

    -- glQueryCounter --------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glQueryCounter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glQueryCounter.xhtml OpenGL 4.x>.
    glQueryCounter
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @target@ of type [QueryCounterTarget](Graphics-GL-Groups.html#QueryCounterTarget).
      -> m ()
    glQueryCounter :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glQueryCounter GLuint
    v1 GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> IO ()
    dyn18 FunPtr (GLuint -> GLuint -> IO ())
    ptr_glQueryCounter GLuint
    v1 GLuint
    v2

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

    -- glQueryCounterEXT -----------------------------------------------------------

    -- | This command is an alias for 'glQueryCounter'.
    glQueryCounterEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @target@ of type [QueryCounterTarget](Graphics-GL-Groups.html#QueryCounterTarget).
      -> m ()
    glQueryCounterEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
    glQueryCounterEXT GLuint
    v1 GLuint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> IO ()
    dyn18 FunPtr (GLuint -> GLuint -> IO ())
    ptr_glQueryCounterEXT GLuint
    v1 GLuint
    v2

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

    -- glQueryMatrixxOES -----------------------------------------------------------

    glQueryMatrixxOES
      :: MonadIO m
      => Ptr GLfixed -- ^ @mantissa@ pointing to @16@ elements of type @GLfixed@.
      -> Ptr GLint -- ^ @exponent@ pointing to @16@ elements of type @GLint@.
      -> m GLbitfield
    glQueryMatrixxOES :: forall (m :: * -> *).
    MonadIO m =>
    Ptr GLfixed -> Ptr GLint -> m GLuint
    glQueryMatrixxOES Ptr GLfixed
    v1 Ptr GLint
    v2 = IO GLuint -> m GLuint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint -> m GLuint) -> IO GLuint -> m GLuint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLuint)
    -> Ptr GLfixed -> Ptr GLint -> IO GLuint
    dyn706 FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLuint)
    ptr_glQueryMatrixxOES Ptr GLfixed
    v1 Ptr GLint
    v2

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

    -- glQueryObjectParameteruiAMD -------------------------------------------------

    glQueryObjectParameteruiAMD
      :: MonadIO m
      => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
      -> GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@.
      -> GLuint -- ^ @param@ of type [OcclusionQueryEventMaskAMD](Graphics-GL-Groups.html#OcclusionQueryEventMaskAMD).
      -> m ()
    glQueryObjectParameteruiAMD :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLuint -> GLuint -> GLuint -> m ()
    glQueryObjectParameteruiAMD GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
    dyn707 FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
    ptr_glQueryObjectParameteruiAMD GLuint
    v1 GLuint
    v2 GLuint
    v3 GLuint
    v4

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

    -- glQueryResourceNV -----------------------------------------------------------

    glQueryResourceNV
      :: MonadIO m
      => GLenum -- ^ @queryType@.
      -> GLint -- ^ @tagId@.
      -> GLuint -- ^ @count@.
      -> Ptr GLint -- ^ @buffer@ pointing to @count@ elements of type @GLint@.
      -> m GLint
    glQueryResourceNV :: forall (m :: * -> *).
    MonadIO m =>
    GLuint -> GLint -> GLuint -> Ptr GLint -> m GLint
    glQueryResourceNV GLuint
    v1 GLint
    v2 GLuint
    v3 Ptr GLint
    v4 = IO GLint -> m GLint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLint -> m GLint) -> IO GLint -> m GLint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLuint -> GLint -> GLuint -> Ptr GLint -> IO GLint)
    -> GLuint -> GLint -> GLuint -> Ptr GLint -> IO GLint
    dyn708 FunPtr (GLuint -> GLint -> GLuint -> Ptr GLint -> IO GLint)
    ptr_glQueryResourceNV GLuint
    v1 GLint
    v2 GLuint
    v3 Ptr GLint
    v4

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

    -- glQueryResourceTagNV --------------------------------------------------------

    glQueryResourceTagNV
      :: MonadIO m
      => GLint -- ^ @tagId@.
      -> Ptr GLchar -- ^ @tagString@.
      -> m ()
    glQueryResourceTagNV :: forall (m :: * -> *). MonadIO m => GLint -> Ptr GLchar -> m ()
    glQueryResourceTagNV GLint
    v1 Ptr GLchar
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLint -> Ptr GLchar -> IO ())
    -> GLint -> Ptr GLchar -> IO ()
    dyn220 FunPtr (GLint -> Ptr GLchar -> IO ())
    ptr_glQueryResourceTagNV GLint
    v1 Ptr GLchar
    v2

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

    -- glRasterPos2d ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos2dv'.
    glRasterPos2d
      :: MonadIO m
      => GLdouble -- ^ @x@ of type @CoordD@.
      -> GLdouble -- ^ @y@ of type @CoordD@.
      -> m ()
    glRasterPos2d :: forall (m :: * -> *). MonadIO m => GLdouble -> GLdouble -> m ()
    glRasterPos2d GLdouble
    v1 GLdouble
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLdouble -> GLdouble -> IO ())
    -> GLdouble -> GLdouble -> IO ()
    dyn225 FunPtr (GLdouble -> GLdouble -> IO ())
    ptr_glRasterPos2d GLdouble
    v1 GLdouble
    v2

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

    -- glRasterPos2dv --------------------------------------------------------------

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

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

    -- glRasterPos2f ---------------------------------------------------------------

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

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

    -- glRasterPos2fv --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
    glRasterPos2fv
      :: MonadIO m
      => Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
      -> m ()
    glRasterPos2fv :: forall (m :: * -> *). MonadIO m => Ptr GLfloat -> m ()
    glRasterPos2fv Ptr GLfloat
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> IO ()
    dyn44 FunPtr (Ptr GLfloat -> IO ())
    ptr_glRasterPos2fv Ptr GLfloat
    v1

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

    -- glRasterPos2i ---------------------------------------------------------------

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

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

    -- glRasterPos2iv --------------------------------------------------------------

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

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

    -- glRasterPos2s ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos2sv'.
    glRasterPos2s
      :: MonadIO m
      => GLshort -- ^ @x@ of type @CoordS@.
      -> GLshort -- ^ @y@ of type @CoordS@.
      -> m ()
    glRasterPos2s :: forall (m :: * -> *). MonadIO m => GLshort -> GLshort -> m ()
    glRasterPos2s GLshort
    v1 GLshort
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> IO ()
    dyn709 FunPtr (GLshort -> GLshort -> IO ())
    ptr_glRasterPos2s GLshort
    v1 GLshort
    v2

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

    -- glRasterPos2sv --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
    glRasterPos2sv
      :: MonadIO m
      => Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
      -> m ()
    glRasterPos2sv :: forall (m :: * -> *). MonadIO m => Ptr GLshort -> m ()
    glRasterPos2sv Ptr GLshort
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> IO ()
    dyn48 FunPtr (Ptr GLshort -> IO ())
    ptr_glRasterPos2sv Ptr GLshort
    v1

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

    -- glRasterPos2xOES ------------------------------------------------------------

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

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

    -- glRasterPos2xvOES -----------------------------------------------------------

    glRasterPos2xvOES
      :: MonadIO m
      => Ptr GLfixed -- ^ @coords@ pointing to @2@ elements of type @GLfixed@.
      -> m ()
    glRasterPos2xvOES :: forall (m :: * -> *). MonadIO m => Ptr GLfixed -> m ()
    glRasterPos2xvOES Ptr GLfixed
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> IO ()
    dyn114 FunPtr (Ptr GLfixed -> IO ())
    ptr_glRasterPos2xvOES Ptr GLfixed
    v1

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

    -- glRasterPos3d ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3dv'.
    glRasterPos3d
      :: MonadIO m
      => GLdouble -- ^ @x@ of type @CoordD@.
      -> GLdouble -- ^ @y@ of type @CoordD@.
      -> GLdouble -- ^ @z@ of type @CoordD@.
      -> m ()
    glRasterPos3d :: forall (m :: * -> *).
    MonadIO m =>
    GLdouble -> GLdouble -> GLdouble -> m ()
    glRasterPos3d GLdouble
    v1 GLdouble
    v2 GLdouble
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn41 FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glRasterPos3d GLdouble
    v1 GLdouble
    v2 GLdouble
    v3

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

    -- glRasterPos3dv --------------------------------------------------------------

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

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

    -- glRasterPos3f ---------------------------------------------------------------

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

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

    -- glRasterPos3fv --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
    glRasterPos3fv
      :: MonadIO m
      => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
      -> m ()
    glRasterPos3fv :: forall (m :: * -> *). MonadIO m => Ptr GLfloat -> m ()
    glRasterPos3fv Ptr GLfloat
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> IO ()
    dyn44 FunPtr (Ptr GLfloat -> IO ())
    ptr_glRasterPos3fv Ptr GLfloat
    v1

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

    -- glRasterPos3i ---------------------------------------------------------------

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

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

    -- glRasterPos3iv --------------------------------------------------------------

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

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

    -- glRasterPos3s ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3sv'.
    glRasterPos3s
      :: MonadIO m
      => GLshort -- ^ @x@ of type @CoordS@.
      -> GLshort -- ^ @y@ of type @CoordS@.
      -> GLshort -- ^ @z@ of type @CoordS@.
      -> m ()
    glRasterPos3s :: forall (m :: * -> *).
    MonadIO m =>
    GLshort -> GLshort -> GLshort -> m ()
    glRasterPos3s GLshort
    v1 GLshort
    v2 GLshort
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLshort -> GLshort -> GLshort -> IO ())
    -> GLshort -> GLshort -> GLshort -> IO ()
    dyn47 FunPtr (GLshort -> GLshort -> GLshort -> IO ())
    ptr_glRasterPos3s GLshort
    v1 GLshort
    v2 GLshort
    v3

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

    -- glRasterPos3sv --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
    glRasterPos3sv
      :: MonadIO m
      => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
      -> m ()
    glRasterPos3sv :: forall (m :: * -> *). MonadIO m => Ptr GLshort -> m ()
    glRasterPos3sv Ptr GLshort
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> IO ()
    dyn48 FunPtr (Ptr GLshort -> IO ())
    ptr_glRasterPos3sv Ptr GLshort
    v1

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

    -- glRasterPos3xOES ------------------------------------------------------------

    glRasterPos3xOES
      :: MonadIO m
      => GLfixed -- ^ @x@.
      -> GLfixed -- ^ @y@.
      -> GLfixed -- ^ @z@.
      -> m ()
    glRasterPos3xOES :: forall (m :: * -> *).
    MonadIO m =>
    GLfixed -> GLfixed -> GLfixed -> m ()
    glRasterPos3xOES GLfixed
    v1 GLfixed
    v2 GLfixed
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
    -> GLfixed -> GLfixed -> GLfixed -> IO ()
    dyn113 FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
    ptr_glRasterPos3xOES GLfixed
    v1 GLfixed
    v2 GLfixed
    v3

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

    -- glRasterPos3xvOES -----------------------------------------------------------

    glRasterPos3xvOES
      :: MonadIO m
      => Ptr GLfixed -- ^ @coords@ pointing to @3@ elements of type @GLfixed@.
      -> m ()
    glRasterPos3xvOES :: forall (m :: * -> *). MonadIO m => Ptr GLfixed -> m ()
    glRasterPos3xvOES Ptr GLfixed
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> IO ()
    dyn114 FunPtr (Ptr GLfixed -> IO ())
    ptr_glRasterPos3xvOES Ptr GLfixed
    v1

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

    -- glRasterPos4d ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos4dv'.
    glRasterPos4d
      :: MonadIO m
      => GLdouble -- ^ @x@ of type @CoordD@.
      -> GLdouble -- ^ @y@ of type @CoordD@.
      -> GLdouble -- ^ @z@ of type @CoordD@.
      -> GLdouble -- ^ @w@ of type @CoordD@.
      -> m ()
    glRasterPos4d :: forall (m :: * -> *).
    MonadIO m =>
    GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
    glRasterPos4d GLdouble
    v1 GLdouble
    v2 GLdouble
    v3 GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
    -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
    dyn116 FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
    ptr_glRasterPos4d GLdouble
    v1 GLdouble
    v2 GLdouble
    v3 GLdouble
    v4

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

    -- glRasterPos4dv --------------------------------------------------------------

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

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

    -- glRasterPos4f ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos4fv'.
    glRasterPos4f
      :: MonadIO m
      => GLfloat -- ^ @x@ of type @CoordF@.
      -> GLfloat -- ^ @y@ of type @CoordF@.
      -> GLfloat -- ^ @z@ of type @CoordF@.
      -> GLfloat -- ^ @w@ of type @CoordF@.
      -> m ()
    glRasterPos4f :: forall (m :: * -> *).
    MonadIO m =>
    GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
    glRasterPos4f GLfloat
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
    dyn52 FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
    ptr_glRasterPos4f GLfloat
    v1 GLfloat
    v2 GLfloat
    v3 GLfloat
    v4

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

    -- glRasterPos4fv --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
    glRasterPos4fv
      :: MonadIO m
      => Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
      -> m ()
    glRasterPos4fv :: forall (m :: * -> *). MonadIO m => Ptr GLfloat -> m ()
    glRasterPos4fv Ptr GLfloat
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> IO ()
    dyn44 FunPtr (Ptr GLfloat -> IO ())
    ptr_glRasterPos4fv Ptr GLfloat
    v1

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

    -- glRasterPos4i ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos4iv'.
    glRasterPos4i
      :: MonadIO m
      => GLint -- ^ @x@ of type @CoordI@.
      -> GLint -- ^ @y@ of type @CoordI@.
      -> GLint -- ^ @z@ of type @CoordI@.
      -> GLint -- ^ @w@ of type @CoordI@.
      -> m ()
    glRasterPos4i :: forall (m :: * -> *).
    MonadIO m =>
    GLint -> GLint -> GLint -> GLint -> m ()
    glRasterPos4i 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_glRasterPos4i GLint
    v1 GLint
    v2 GLint
    v3 GLint
    v4

    {-# NOINLINE ptr_glRasterPos4i #-}
    ptr_glRasterPos4i :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glRasterPos4i :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
    ptr_glRasterPos4i = 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
    "glRasterPos4i"

    -- glRasterPos4iv --------------------------------------------------------------

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

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

    -- glRasterPos4s ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos4sv'.
    glRasterPos4s
      :: MonadIO m
      => GLshort -- ^ @x@ of type @CoordS@.
      -> GLshort -- ^ @y@ of type @CoordS@.
      -> GLshort -- ^ @z@ of type @CoordS@.
      -> GLshort -- ^ @w@ of type @CoordS@.
      -> m ()
    glRasterPos4s :: forall (m :: * -> *).
    MonadIO m =>
    GLshort -> GLshort -> GLshort -> GLshort -> m ()
    glRasterPos4s GLshort
    v1 GLshort
    v2 GLshort
    v3 GLshort
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
    -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
    dyn120 FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
    ptr_glRasterPos4s GLshort
    v1 GLshort
    v2 GLshort
    v3 GLshort
    v4

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

    -- glRasterPos4sv --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
    glRasterPos4sv
      :: MonadIO m
      => Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @CoordS@.
      -> m ()
    glRasterPos4sv :: forall (m :: * -> *). MonadIO m => Ptr GLshort -> m ()
    glRasterPos4sv Ptr GLshort
    v1 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> IO ()
    dyn48 FunPtr (Ptr GLshort -> IO ())
    ptr_glRasterPos4sv Ptr GLshort
    v1

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

    -- glRasterPos4xOES ------------------------------------------------------------

    glRasterPos4xOES
      :: MonadIO m
      => GLfixed -- ^ @x@.
      -> GLfixed -- ^ @y@.
      -> GLfixed -- ^ @z@.
      -> GLfixed -- ^ @w@.
      -> m ()
    glRasterPos4xOES :: forall (m :: * -> *).
    MonadIO m =>
    GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
    glRasterPos4xOES GLfixed
    v1 GLfixed
    v2 GLfixed
    v3 GLfixed
    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 (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
    -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
    dyn53 FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
    ptr_glRasterPos4xOES GLfixed
    v1 GLfixed
    v2 GLfixed
    v3 GLfixed
    v4

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